DB2中的NVL和NVL2函式

2022-05-14 16:06:09 字數 570 閱讀 1251

nvl函式是乙個空值轉換函式

nvl(表示式1,表示式2)
如果表示式1為空值,nvl返回值為表示式2的值,否則返回表示式1的值。

該函式的目的是把乙個空值(null)轉換成乙個實際的值。其表示式的值可以是數字型、字元型和日期型。但是表示式1和表示式2的資料型別必須為同乙個型別。

實用例子:

查詢某個員工年薪,如果為空則用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的值。

nvl 函式和nvl2 函式

格式為 nvl string1,replace with 功能 如果string1為null,則nvl函式返回replace with的值,否則返回string1的值,如果兩個引數都為null 則返回null。注意事項 string1和replace with必須為同一資料型別,除非顯式的使用to ...

Oracle中nvl和nvl2這兩個函式的區別

1 nvl value1,value2 這個函式的意思是如果value1的值為null,那麼函式返回value2的值 如果value1不為空,那麼就返回value1的值。需要注意的是value1和value2要保持字段型別相同。2 nvl2 value1,value2,value3 這個函式的意思是...

Decode與NVL和NVL2區別

decode 條件,值1,翻譯值1,值2,翻譯值2,預設值 該函式與程式中的 if.else if.else 意義一樣 格式 nvl string1,replace with 功能 如果string1為null,則nvl函式返回replace with的值,否則返回string1的值,如果兩個引數都...