首页 > 数据库技术 > 详细

SQL语句——06、NULL处理

时间:2019-10-30 01:47:46      阅读:124      评论:0      收藏:0      [点我收藏+]

Null是一个很特别的值,既不是0也不是空格.它的值是没有定义,不确定的未知值。

Null值的运算

AND运算表

True and NULL is NULL
False and NULL = False
NULL and NULL is NULL

OR运算表

True or NULL = True
False or NULL IS NULL
NULL OR NULL IS NULL

IN运算

select sal from emp where sal not in(800,null);
相当于:
select sal from emp where sal!=800 and sal!=null;
所以in中不要有null
 

计算

NULL值为未知不可以参与计算。如果要做运算,可以用NVL、NVL2、NVLIF函数先置为0

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

如果表达式1是NULL,则返回表达式2
如果表达式1非NULL,则返回表达式1
表达式1和表达式2可以是数字,字符串,日期格式,1和2的数据类型必须一致
 
SQL> select ename,job,sal,comm,sal+NVL(comm,0) from emp where ename in (SMITH,WARD);

ENAME       JOB           SAL       COMM    SAL+NVL(COMM,0)
---------- --------- ---------- ---------- ---------------
SMITH      CLERK         800                       800
WARD     SALESMAN        1250       500            1750

NVL2(expr1,expr2,expr3)

如果expr1为空,则返回expr3,否则返回expr2
 
SQL> select ename,job,sal,comm,sal+NVL2(comm,comm,0) from emp where ename in (SMITH,WARD);

ENAME         JOB        SAL       COMM    SAL+NVL2(COMM,COMM,0)
---------- --------- ---------- ---------- ---------------------
SMITH        CLERK      800                     800
WARD       SALESMAN     1250        500         1750

NULLIF(expr1,expr2)

如果expr1和expr2相同,则返回空,否则返回expr1
SQL> select ename,NULLIF(ename,KING) from emp where ename in (SCOTT,KING);

ENAME       NULLIF(ENA
---------- ----------
SCOTT       SCOTT
KING

COALESCE(expr1,expr2,expr3,...)

返回第一个非空的表达式
SQL> select coalesce(‘‘,a,‘‘,b) from dual;

C
-
a

SQL> select coalesce(‘‘,‘‘,‘‘,b) from dual;

C
-
b

 

 

SQL语句——06、NULL处理

原文:https://www.cnblogs.com/marxist/p/11762392.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!