当前位置:   article > 正文

HQL一天一个小技巧:coalesce和nvl函数区别_hql nvl

hql nvl

coalesce 函数

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

  1. CREATE OR REPLACE VIEW v AS
  2. SELECT NULL AS C1, NULL AS C2, 1 AS C3, NULL AS C4, 2 AS C5, NULL AS C6 FROM tmp
  3. UNION ALL
  4. SELECT NULL AS C1, NULL AS C2, NULL AS C3, 8 AS C4, NULL AS C5, 5 AS C6 FROM tmp;
  5. SQL> select * from v;
  6. C1 C2 C3 C4 C5 C6
  7. - - ---------- ---------- ---------- ----------
  8. 1 2
  9. 8 5
  10. SQL> SELECT COALESCE(C1, C2, C3, C4, C5, C6) AS c FROM V;
  11. C
  12. ----------
  13. 1
  14. 8

 如果用nvl函数呢?

SELECT nvl(nvl(nvl(nvl(nvl(c1, c2), c3), c4), c5), c6) AS c FROM v;


总结:

  • NVL:如果第一个值为NULL取默认值,默认值是自己赋值上去的是个常数。支持两个参数。其本质是个函数。
  • coalesce:如果第一个参数为空就取第二个参数的值,第二个参数可以为常数也可以为表达式(字段,语句等)。以此类推,支持多个参数。更常用,其本质是个语句,更像个if语句,效率更高,建议使用。

SQL应用:

SQL进阶技巧:如何分析共同好友问题?-CSDN博客

SQL进阶技巧:如何计算重叠区间合并问题?-CSDN博客

SQL进阶技巧:车辆班次问题分析-CSDN博客

SQL进阶技巧:如何计算先进先出库龄问题?-CSDN博客

SQL进阶技巧:埋点日志浏览时长问题分析-CSDN博客

SQL进阶技巧:如何进行用户行为路径分析、构建桑基图?【拼多多】-CSDN博客

SQL进阶技巧:如何使用差值累计计算思想巧解数学中递归计算问题-CSDN博客

SQL进阶技巧:如何按照固定尺寸(固定区间)对数据进行打分类标签?_sql 给一列数值按固定值范围区间分组赋值-CSDN博客

SQL高级技巧:如何精准计算非连续日期累计值【闪电快车面试题】-CSDN博客

彻底理解冷门函数PERCENT_RANK()函数?如何利用其特性巧解实际问题?-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/973683
推荐阅读
  

闽ICP备14008679号