nvl,coalesce,decode,if用法及其区别

时间:2022-09-24 11:47:27
SQL中 nvl()、coalesce()、decode()这三个函数,如果只是判断非空的话,哪一个效率相比较高?
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 了。