赞
踩
在HIVE中,COALESCE(a1,a2,......,an)返回a1,a2,......,an中遇到的第一个不为NULL的值;
COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
注意:''不是null【length('')=0,但''不是null】,null才是空!!!!
版本:hive2.0
- hive> select coalesce(1,2);
- OK
- 1
- Time taken: 0.23 seconds, Fetched: 1 row(s)
-
- hive> select coalesce(null,2);
- OK
- 2
- Time taken: 0.079 seconds, Fetched: 1 row(s)
-
- hive> select coalesce(null,null,3);
- OK
- 3
- Time taken: 0.11 seconds, Fetched: 1 row(s)
-
- hive> select coalesce(null,2,3);
- OK
- 2
- Time taken: 0.055 seconds, Fetched: 1 row(s)
-
- hive> select coalesce(null,null);
- OK
- NULL
- Time taken: 1.002 seconds, Fetched: 1 row(s)
- select length(' ')
- from t1 where dt=sysdate(-1) limit 10 ; -- 1个空格 length(' ') = 1
-
- select length(' ')
- from t1 where dt=sysdate(-1) limit 10 ; -- 2个空格 length(' ') = 2
- select 1 from t2 where dt=sysdate(-1) and coalesce(' ','')<>'' limit 10 ; -- 空格' '<>''
-
- select 1 from t2 where dt=sysdate(-1) and coalesce(null,'')<>'' limit 10 ; -- null = ''
- select coalesce('','1') -- '' ,'' 不是null
-
- select coalesce(null,'1') -- 1
-
-
- select coalesce('','1') -- res7,结果是''
- select coalesce('',' ','1') -- res8,结果是''
- select coalesce(' ','1') -- res9,结果是' '
- select coalesce('',1) --res10,结果是''
- Hive2.0.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。