sql中的nvl是干嘛的?

如上图,写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的基础上进行的扩展;

你可能感兴趣的:(sql中的nvl是干嘛的?)