HIVE like和rlike
阿新 • • 發佈:2019-02-09
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匹配