首页 > 其他 > 详细

将空值转换为实际值

时间:2015-10-12 20:43:27      阅读:242      评论:0      收藏:0      [点我收藏+]

创建测试用表:

CREATE OR REPLACE VIEW v AS
SELECT NULL AS c1, NULL AS c2, ‘1‘ AS c3, NULL AS c4, ‘2‘ AS c5 FROM dual
UNION ALL
SELECT NULL AS c1, NULL AS c2, NULL AS c3, ‘3‘ AS c4, ‘2‘ AS c5 FROM dual;
SELECT * FROM v;

技术分享

如果要查询列c3的值,当c3列为空时,把它显示为0,有以下两种方式:

-- 使用nvl函数
SELECT NVL(c3, ‘0‘) c3 FROM v;

-- 使用coalesce函数
SELECT COALESCE(c3, ‘0‘) c3 FROM v;

查询结果如下:

技术分享

如果要查询列c1到c5中,第一个不为空的值,也有下面的两种方式:

-- 方法一
SELECT NVL(NVL(NVL(NVL(c1, c2), c3), c4), c5) AS c from v;

-- 方法二
SELECT COALESCE(c1, c2, c3, c4, c5) AS c FROM v;

查询结果如下:

技术分享

可以看到,相对于nvl来说,coalesce支持多个参数,能很方便的返回第一个不为空的值。

将空值转换为实际值

原文:http://www.cnblogs.com/minisculestep/p/4872594.html

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