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