SQL中 nvl()coalesce()decode()这三个函数是不是递进包含关系?比如:select name,bonus from table where name='apple';name bonus----------------apple 空 (我想让结果=0)以下语句都对吗?如果有问题请指出,1.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 11:20:42

SQL中 nvl()coalesce()decode()这三个函数是不是递进包含关系?比如:select name,bonus from table where name='apple';name bonus----------------apple 空 (我想让结果=0)以下语句都对吗?如果有问题请指出,1.
SQL中 nvl()coalesce()decode()这三个函数是不是递进包含关系?
比如:
select name,bonus from table where name='apple';
name bonus
----------------
apple 空 (我想让结果=0)
以下语句都对吗?如果有问题请指出,
1.select name,nvl(bonus,0) from table where name='apple';
2.select name,coalesce(bonus,0,1) from table where name='apple';
3.select name,coalesce(bonus,null,0) from table where name='apple';
4.select name,bonus,decode(name,‘apple’,0) from table where name='apple';

SQL中 nvl()coalesce()decode()这三个函数是不是递进包含关系?比如:select name,bonus from table where name='apple';name bonus----------------apple 空 (我想让结果=0)以下语句都对吗?如果有问题请指出,1.
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 了.