HIVE like和rlike

like与rlike的区别:

like不是正则,是通配符。这个通配符可以看一下SQL的标准,例如%代表任意多个字符。

rlike是正则,正则的写法与java一样。'\'需要使用'\\',例如'\w'需要使用'\\w'

 

--NAME中包含数字的

select name from wlh_dm_sz_3 where rlike (name,'[0-9]') limit 100

select name from wlh_dm_sz_3 where name rlike '[0-9]' limit 100 结果相同

--NAME中以数字开头的

select name from wlh_dm_sz_3 where name rlike '^[0-9].*' limit 100

--NAME中包含A B C的

select name from wlh_dm_sz_3 where rlike (name,'1|2|3') limit 100

 

hive 中没有not like 而是用 not col_name like '%a%'

                                          not col_name rlike 'a' 

 

--多个条件

如查找name字段中含有 Li 和 Jin的信息

select * from emp where name rlike '.*(Li|Jin).*';

 

点号.:表示和任意的字符匹配

星号*:表示重复“左边的字符串”零次到无数次

表达式(x|y):表示和x或者y匹配

你可能感兴趣的:(每天一点HIVE)