hive 的like与rlike,not like,linke not,coalesce函数使用
1.关于like与rlike,not like,like not的使用对比总结
rlike功能和like功能大致一样,like是后面只支持简单表达式匹配(_%),而rlike则支持标准正则表达式语法。所以如果正则表达式使用熟练的话,建议使用rlike,功能更加强大。所有的like匹配都可以被替换成rlike。反之,则不行。但是注意:like是从头逐一字符匹配的,是全部匹配,但是rlike则不是,可以从任意部位匹配,而且不是全部匹配。
hive (default)> select 'boobar' like 'boo';
OK
false
hive (default)> select 'boobar' like 'boo';
OK
false
hive (default)> select 'boobar' like 'oo%';
OK
false
hive (default)> select 'boobar' rlike 'boo';
OK
true
hive (default)> select 'boobar' rlike '.oo.*';
OK
true
2.not like,like not的使用对比总结
NOT A LIKE B是LIKE的结果否定,如果like匹配结果时true,则not…like的匹配结果时false,反之也是结果也是相对。实际中也可以使用 A NOT LIKE B,也是LIKE的否定,与 NOT A LIKE B一样。当然前提要排除出现null问题,null值这个奇葩除外,null的结果都是null值。
同理NOT RLIKE 的使用,也是NOT A RLIKE B是对RLIKE的否定。当然前提要排除出现null问题,null值这个奇葩除外,null的结果都是null值。
3.COALESCE函数
COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
使用实例
这个参数使用的场合为:假如某个字段默认是null,你想其返回的不是null,而是比如0或其他值,可以使用这个函数
SELECT COALESCE(field_name,0) as value from table;
select coalesce(a,b,c);
参数说明:如果anull,则选择b;如果bnull,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null。