当前位置:   article > 正文

Hive,coalesce / length 用法_hive coalesce

hive coalesce

在HIVE中,COALESCE(a1,a2,......,an)返回a1,a2,......,an中遇到的第一个不为NULL的值;

COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值

注意:''不是null【length('')=0,但''不是null】,null才是空!!!!

版本:hive2.0

  1. hive> select coalesce(1,2);
  2. OK
  3. 1
  4. Time taken: 0.23 seconds, Fetched: 1 row(s)
  5. hive> select coalesce(null,2);
  6. OK
  7. 2
  8. Time taken: 0.079 seconds, Fetched: 1 row(s)
  9. hive> select coalesce(null,null,3);
  10. OK
  11. 3
  12. Time taken: 0.11 seconds, Fetched: 1 row(s)
  13. hive> select coalesce(null,2,3);
  14. OK
  15. 2
  16. Time taken: 0.055 seconds, Fetched: 1 row(s)
  17. hive> select coalesce(null,null);
  18. OK
  19. NULL
  20. Time taken: 1.002 seconds, Fetched: 1 row(s)
  1. select length(' ')
  2. from t1 where dt=sysdate(-1) limit 10 ; -- 1个空格 length(' ') = 1
  3. select length(' ')
  4. from t1 where dt=sysdate(-1) limit 10 ; -- 2个空格 length(' ') = 2
  1. select 1 from t2 where dt=sysdate(-1) and coalesce(' ','')<>'' limit 10 ; -- 空格' '<>''
  2. select 1 from t2 where dt=sysdate(-1) and coalesce(null,'')<>'' limit 10 ; -- null = ''
  1. select coalesce('','1') -- '' ,'' 不是null
  2. select coalesce(null,'1') -- 1
  3. select coalesce('','1') -- res7,结果是''
  4. select coalesce('',' ','1') -- res8,结果是''
  5. select coalesce(' ','1') -- res9,结果是' '
  6. select coalesce('',1) --res10,结果是''
  7. Hive2.0.0

 

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号