暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

操作数据为null的函数

Oracle微学堂 2019-03-22
485

 

综合数据类型函数

NVL (expr1, expr2)

如果 expr1 为非空,就返回 expr1, 如果 expr1 为空返回 expr2,两个表达式的数据类型一定要相同。

NVL2 (expr1, expr2, expr3) 

如果 expr1 为非空,就返回 expr2, 如果 expr1 为空返回 expr3

NULLIF (expr1, expr2)

如果 expr1 和 expr2 相同就返回空,否则返回 expr1

COALESCE (expr1, expr2, ..., exprn)

返回括号内第一个非空的值。

SQL> select ename,comm,nvl(comm,-1) from emp;

ENAME COMM NVL(COMM,-1)

-------------------- ----- ------------

SMITH -1

ALLEN 300 300

WARD 500 500

JONES -1

MARTIN 1400 1400

BLAKE -1

CLARK -1

KING -1

TURNER 0 0

JAMES -1

FORD -1

MILLER -1

有奖金就返回奖金,奖金为空就返回-1。

select sal+comm ,sal+nvl(comm,0),nvl2(comm,'工资加奖金','纯工资') "收入类别" from emp; 

有奖金就返回‘ ‘ ‘ ’ 工资加奖金 ,奖金为空就返回 纯工资 。

select ename,nullif(ename,'KING') from emp;

ENAME NULLIF(ENA

-------------------- ----------

SMITH SMITH

ALLEN ALLEN

WARD WARD

JONES JONES

MARTIN MARTIN

BLAKE BLAKE

CLARK CLARK

KING 

TURNER TURNER

JAMES JAMES

FORD FORD

MILLER MILLER

如果员工的名称为 king 就返回空,否则返回自己的名字。


select COALESCE(comm,sal,100) "奖金" from emp;

如果有奖金就返回奖金,如果没有奖金就返回工资作为奖金,如果奖金和工资都为空就返回 100,起个别名叫做"奖金"。

扫描二维码关注我的微学堂

搜索刘老师微信号:Rman-2014,备注“Oracle学习与咨询”,即可添加好友;或者扫描下面二维码,关注我的“微学堂”公众号,了解最新OCP认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!



最后修改时间:2019-12-20 16:31:17
文章转载自Oracle微学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论