Oracle 常用的幾個通用函式
1、NVL()
格式:NVL(value,string1)
如果value為null,則把該值替換為string1,如果不為空,還是該值本身;
用法:select nvl(123,9) from dual;--結果為:123
select nvl(null,9) from dual;--結果為:9
select nvl(null,'a') from dual;--結果為:a
NVL()函式相當於if....else...語句,if value=null then value=9 else value=value fi;
2、NVL2()
格式:NVL2(value,string1,string2)
NVL()的擴充套件函式,如果value為空,則返回string2,如果不為空,則返回string1
用法:select * from testnumber;
select nvl2(nvltest,'非null','null') from testnumber where listid=2.00;
3、Decode()
格式:decode(column,if1,value1,if2,value2.....ifn,valuen)
decode(expressio,if1,value1,if2,value2.....ifn,valuen,elsevalue)
如果decode的傳入的值為欄位,則當欄位值為if1時,返回value1,以此類推;
如果decode的傳入的是表示式,則當表示式值為if1時,返回value1,以此類推,如果表示式值不在其中,則返回elsevalue;
用法:(1)select * from testnumber;
(2)select username,
decode(username, 'cleaner', '清潔員', 'teacher', '教師','farmer','農民') decode值
from testnumber;
(3)select username,
decode(username, 'cleaner', '清潔員', 'teacher', '教師','農民') decode值
from testnumber;
(4)select username,
decode(username, 'cleaner', '清潔員', 'teacher', '教師') decode值
from testnumber;