DB2中的NVL和NVL2函數


NVL函數是一個空值轉換函數

NVL(表達式1,表達式2)

如果表達式1為空值,NVL返回值為表達式2的值,否則返回表達式1的值。
該函數的目的是把一個空值(null)轉換成一個實際的值。其表達式的值可以是數字型、字符型和日期型。但是表達式1和表達式2的數據類型必須為同一個類型。

  • 對數字型:NVL( a,0);
  • 對字符型:NVL(TO_CHAR(a), 'zifeiy')
  • 對日期型:NVL(mydate,'31-DEC-99')

實用例子:
查詢某個員工年薪,如果為空則用0代替

select (sal+nvl(comm,0))*12 from emp where emp.pno=:pno;

這里,comm是未定義的變量,代指數字類型。 nvl返回為0。

NVL2(表達式1,表達式2,表達式3)

如果表達式1為空,返回值為表達式3的值。如果表達式1不為空,返回值為表達式2的值。
例如:

NVL2(comm,'sal+comm',sal)

NVL2函數測試comm
如果comm為空,就返回sal 的值。如果 comm 不為空(null),就返回表達式 sal+comm的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM