decode(條件,值1,翻譯值1,值2,翻譯值2,...,缺省值) 該函數與程序中的 If...else if...else 意義一樣
格式:NVL( string1, replace_with)
功能:如果string1為NULL,則NVL函數返回replace_with的值,否則返回string1的值,如果兩個參數都為NULL ,則返回NULL。
注意事項:string1和replace_with必須為同一數據類型,除非顯式的使用TO_CHAR函數進行類型轉換。
select nvl(sum(t.dwxhl),1) from tb_jhde t 就表示如果sum(t.dwxhl) = NULL 就返回 1
Oracle在NVL函數的功能上擴展,提供了NVL2函數
nvl2 (E1, E2, E3) 的功能為:如果E1為NULL,則函數返回E3,否則返回E2
結合
Decode 和 NVL等函數 常常結合使用,例如
select monthid,decode(nvl(sale,6000),6000,'NG','OK') from output
sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1,
如果取較小值就是 select monthid,decode(sign(sale-6000),-1,sale,6000) from output,即達到取較小值的目的。