您的位置:首页 > 其它

用 ISNULL(), NVL(), IFNULL() and COALESCE() 函数替换空值

2017-05-12 10:38 447 查看
数据库操作中,往往要对一些查询出来的空值进行替换,如函数SUM(),count(*)这个函数如果没有值会返回NULL,无法显示,我们希望显示为0

在MySQL中我们可以这样来写:

select IFNULL(sum(data),0) ...

在SQLSERVER中我们可以这样写:

select ISNULL(sum(data),0) ...

在ORACLE中我们可以这样写:

select NVL(sum(data),0) ...

对于所有数据库适用的方法可以这样写:

select COALESCE(sum(data),0) ...

nvl(bonus,0) 意思是 如果 bonus is null , 那么返回 0, 否则返回 bonus

coalesce(bonus,0,1) 意思是 返回 参数列表中, 第一个非 空的数据。
也就是相当于, 如果 bonus is null , 那么返回 0, 否则返回 bonus。

这里的最后一个参数 1, 目测是打酱油的。

coalesce(bonus,null,0) 意思是 返回 参数列表中, 第一个非 空的数据。
也就是相当于, 如果 bonus is null , 那么第2个参数还是 null, 最后返回第3个参数 0

decode(name,‘apple’,0) 意思是, 如果 name = 'apple' 那么返回 0
否则的话 , 就是返回 null 了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: