單值函數
四則運算
文法:“+”,“-”,“*”,“/”
功能:數字的四則運算
示例: select 3+2,3-2,3*2,3/2 from dual;
select 3+2,3-2,3*2,3/2 from dual;
結果:5 1 6 1.5
NULL
文法:表示為空,沒有任何意義
功能:最好不要讓null參與運算
示例: select 3+NULL,3-NULL,3*NULL,3/NULL from dual;
select 3+NULL,3-NULL,3*NULL,3/NULL from dual;
結果: NULL NULL NULL NULL
NULL NULL NULL NULL
NVL:空值置換
文法:NVL(value,substitute)
功能:如果value是null,則用substitute的值代替,否則就是value
示例: select nvl(NULL,123),nvl(0,123) from dual;
select nvl(NULL,123),nvl(0,123) from dual;
結果:123 0
注意:NVL的使用不限于數值,他們同樣可以适用于其他資料類型,但是要保證value參數和substitute參數類型是相同的。
NVL2
文法:NVL2(expr1,expr2,expr3)
功能:如果參數表達式expr1值為NULL
則NVL2()函數傳回參數表達式expr3的值
如果參數表達式expr1值不為NULL
則NVL2()函數傳回參數表達式expr2的值
示例: select nvl2(1,3,4) from dual;
select nvl2(1,3,4) from dual;
結果:3
執行個體: select nvl2(null,3,4) from dual;
select nvl2(null,3,4) from dual;
結果:4
注意:NVL2(表達式,不為空設值,為空設值)
ABS:絕對值
文法:ABS(expr)
功能:取絕對值
示例:簡單到不行,就算了
CEIL
文法: CEIL(expr)
功能:CEIL用于産生大于或等于目前值的最小整數
示例: select ceil(1),
ceil(1.2),
ceil(1.5),
ceil(1.6),
ceil(-2),
ceil(-2.4),
ceil(-2.5),
ceil(-2.6)
from dual;
select ceil(1), ceil(1.2), ceil(1.5), ceil(1.6), ceil(-2), ceil(-2.4), ceil(-2.5), ceil(-2.6) from dual;
結果:1 2 2 2 -2 -2 -2 -2
FLOOR
文法: FLOOR(expr)
功能:傳回小于或等于指定值的最大整數
示例:
select floor(1),
floor(1.2),
floor(1.5),
floor(1.6),
floor(-2),
floor(-2.4),
floor(-2.5),
floor(-2.6)
from dual;
結果:1 1 1 1 -2 -3 -3 -3
MOD
文法: MOD(value,divisor)
功能:求餘
示例:
select mod(50, 10),
mod(15, 4),
mod(12.3, 5),
mod(5.5, 2.9),
mod(-7, 5),
mod(0, 5),
mod(5, 0),
mod(7, -5)
from dual;
結果: 0 3 2.3 2.6 -2 0 5 2
0 3 2.3 2.6 -2 0 5 2
POWER
文法: POWER(value,exponent)
功能:求一個值的指數乘方
示例:easy !
SQRT
文法: SQRT(value)
功能:求平方根
示例: select sqrt(121) from dual;
select sqrt(121) from dual;
等價于: select power(121,0.5) from dual;
select power(121,0.5) from dual;
結果:11
注意:Oracle不支援虛數,是以這個value不能為負數,否則會傳回錯誤。
ROUND
文法:ROUND(value,precision)
功能:ROUND則根據給定的精讀舍入數值。
示例: select round(11,2),round(11.111,2),round(11.888,2),round(11,-1) from dual;
select round(11,2),round(11.111,2),round(11.888,2),round(11,-1) from dual;
結果: 11 11.11 11.89 10
注意: precision參數可以為負數,表示精度移到小數點左邊
TRUNC
文法:TRUNC(value,precision)
功能:TRUNC按精讀截取某個實數
示例: select trunc(11,2),trunc(11.111,2),trunc(11.888,2),trunc(11,-1) from dual;
select trunc(11,2),trunc(11.111,2),trunc(11.888,2),trunc(11,-1) from dual;
結果: 11 11.11 11.88 10
注意: trunc是直接截取,而round會四舍五入處理。
SIGN
文法: SIGN(value)
功能:取某個數的符号(正或負)
示例: select sign(-100) ,sign(100),sign(0)from dual;
select sign(-100) ,sign(100),sign(0)from dual;
結果:1-、1、0
注意:正數傳回1.負數傳回-1,零傳回0
聚集函數
COUNT
文法:COUNT(*)
功能:傳回總的資料條數
示例:COUNT(具體字段)
結果:傳回目前字段中不為NULL的個數
注意: 組值函數很多時候會與單值函數結合使用。
常用的組值函數是:AVG,COUNT,MAX,MIN,SUM
功能:字面意思就能看出來
清單函數
GREATEST和LEAST
文法:
GREATEST(value1,value2.value3...)
LEAST(value1,value2.value3...)