1. 程式人生 > >Oracle 常用的幾個通用函式

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;