irpas技术客

HQL一天一个小技巧:coalesce和nvl函数区别_莫叫石榴姐_hql nvl

网络 1278

coalesce 函数

COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。 注意:所有表达式必须为同一类型或者能转换成同一类型。 ?

CREATE OR REPLACE VIEW v AS SELECT NULL AS C1, NULL AS C2, 1 AS C3, NULL AS C4, 2 AS C5, NULL AS C6 FROM tmp UNION ALL SELECT NULL AS C1, NULL AS C2, NULL AS C3, 8 AS C4, NULL AS C5, 5 AS C6 FROM tmp; SQL> select * from v; C1 C2 C3 C4 C5 C6 - - ---------- ---------- ---------- ---------- 1 2 8 5 SQL> SELECT COALESCE(C1, C2, C3, C4, C5, C6) AS c FROM V; C ---------- 1 8 ?如果用nvl函数呢? SELECT nvl(nvl(nvl(nvl(nvl(c1, c2), c3), c4), c5), c6) AS c FROM v; 总结: NVL:如果第一个值为NULL取默认值,默认值是自己赋值上去的是个常数。支持两个参数。其本质是个函数。coalesce:如果第一个参数为空就取第二个参数的值,第二个参数可以为常数也可以为表达式(字段,语句等)。以此类推,支持多个参数。更常用,其本质是个语句,更像个if语句,效率更高,建议使用。 欢迎关注石榴姐公众号"我的SQL呀",关注我不迷路

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #HQL #NVL #coalesce #表达式2 #表达式nnampgt2