Oracle中的 Decode和nvl 函數的用法及區別?,decodenvl

來源:互聯網
上載者:User

Oracle中的 Decode和nvl 函數的用法及區別?,decodenvl
Decode

decode(條件,值1,翻譯值1,值2,翻譯值2,...,預設值)    該函數與程式中的 If...else if...else 意義一樣

NVL

格式: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

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,即達到取較小值的目的。



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.