Oracle 單行函數整理(數字函數篇)數字函數:
Round(列名|表達式, n):將列或表達式所表示的數值四捨五入到小數點後的第n位。
Trunc(列名|表達式,n):將列或表達式所表示的數值截取到小數點後的第n位。
Mod(m,n)取m除以n後得到的余數。
abs:求絕對值函數,如:abs(-5) 5
sqrt:求平方根函數,如:sqrt(2) 1.41421356
power:求冪函數,如:power(2,3) 8
cos:求余弦三角函數,如:cos(3.14159) -1
mod:求除法余數,如:mod(1600, 300) 100
ceil:求大於等於某數的最小整數,如:ceil(2.35) 3
floor:求小於等於某數的最大整數,如:floor(2.35) 2
round:按指定精度對十進制數四捨五入,如:round(45.923, 1),結果,45.9
round(45.923,0),結果,46
round(45.923,-1),結果,50
trunc:按指定精度截斷十進制數,如:trunc(45.923, 1),結果,45.9
trunc(45.923),結果,45
trunc(45.923,-1),結果, 40
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-parent:"";mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-para-margin:0cm;mso-para-margin-bottom:.0001pt;mso-pagination:widow-orphan;font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:"Times New Roman";mso-ansi-language:#0400;mso-fareast-language:#0400;mso-bidi-language:#0400;}數值轉換符:
9:代表一位數字,如果是正數,前面是空格,如果是負數,前面是?號,如:9999
0:代表一位數字,在相應的位置上如果沒有數字則出現0 0000
,:逗號,用作組分隔符,如:99,999
.:小數點,分隔整數和小數,如:999.9
$:$貨幣符號,如:$999.9
L:本地貨幣符號,如:L999.99
FM:去掉前後的空格,如:FM999.99
EEEE:科學計數法,如:9.9EEEE
S:負數符號?放在開頭,如:S999.9
將數值轉換成字符串並按新格式顯示。
執行以下查詢:
Sql代碼
SELECT TO_CHAR(sal,'$99,999') SALARY FROM emp
WHERE ename = 'SCOTT';
結果為:
Sql代碼 SALARY
------------
$4,000
說明:格式字符串中“$”表示轉換結果前面添加$。“9”表示一位數字,“99,999”表示結果可以顯示為5位的數字。“,”表示在相應的位置上 添加逗號。如果實際數值位數不足5位,則只顯示實際位數,如4000實際位數為4位,則只顯示4位。如果實際位數超過5位,則會填充為#號。
其他函數
nvl:空值轉換函數,如:nvl(null, '空'),結果:空
decode:實現分支功能,如:decode(1,1, '男', 2, '女'),結果:男
userenv:返回環境信息,如:userenv('LANGUAGE'),結果:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
greatest:返回參數的最大值,如:greatest(20,35,18,9),結果:35
least:返回參數的最小值,如:least(20,35,18,9),結果:9
空值的轉換
如果對空值NULL不能很好的處理,就會在查詢中出現一些問題。在一個空值上進行算術運算的結果都是NULL。最典型的例子是,在查詢雇員表時,將工資sal字段和津貼字段comm進行相加,如果津貼為空,則相加結果也為空,這樣容易引起誤解。
使用nvl函數,可以轉換NULL為實際值。該函數判斷字段的內容,如果不為空,返回原值;為空,則返回給定的值。
如下3個函數,分別用新內容代替字段的空值:
nvl(comm, 0):用0代替空的Comm值。
nvl(hiredate, '01-1月-97'):用1997年1月1日代替空的雇傭日期。
nvl(job, '無'):用“無”代替空的職務。