1. 程式人生 > >HIVE like和rlike

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匹配