sql中的nvl是幹嘛的?

weixin_33938733發表於2017-07-31

如上圖,寫sql語句進行查表的時候,模仿著之前專案裡的栗子寫的,但是有點不太明白nvl是幹嘛用的,什麼時候該用,什麼時候不能用;

遂上百度,搜了以下,心裡大概明白了不少;

首先NVL是Orancle PL/SQL中的一個函式;

格式如下:

NVL(string1, replace_with)

它的作用:

如果string1為NULL,那麼NVL函式返回replace_with的值,否則返回string1的值;
注意:

  • 如果兩個引數都是NULL,那麼就返回NULL;
    個人理解:
NVL(表示式1, 表示式2)

// NVL函式的作用如下:
if(表示式1 != null){
   return 表示式1的結果值; 
}else{
  return 表示式2的結果值;
}

相當於判斷表示式1是否為null,如果不為null,就用表示式1的值,如果表示式1為null,就用表示式2的值來代替;

特別要注意的是:

string1和replace_with必須為同一資料型別,除非顯式的使用TO_CHAR函式進行型別轉換。

NVL函式的擴充套件------NVL2

  • NVL2 也是一個函式,是在NVL的基礎上進行的擴充套件;

相關文章