hive:幾種實現like的方式

LOCATE:

SELECT s.title,t.name
FROM (select * from bo.t_positions limit 1000) s
RIGHT JOIN resume.pf_basic_dic t
ON(TRUE)
WHERE LOCATE(s.title,t.name)>0

like:

SELECT s.position_name,t.senior_name FROM (select * from tmp.t_position_name_data_times_less300) s ,tmp.t_senior_function_data t 
WHERE t.senior_name LIKE CONCAT('%' ,s.position_name , '%') group by t.senior_name,s.position_name

rlike:

SELECT s.position_name,t.senior_name FROM (select * from tmp.t_position_name_data_times_less300 limit 100) s ,tmp.t_senior_function_data t 
WHERE t.senior_name rlike s.position_name group by t.senior_name,s.position_name

報錯:

join:

select * from  (select * from bo.t_positions limit 200) s left join tmp.t_senior_function_data t on t.senior_name like concat('%',s.title,'%')

報錯:

參考:

https://blog.csdn.net/xieganyu3460/article/details/83410246

改爲如下(條件放where裏):

select * from  (select * from bo.t_positions limit 200) s  join tmp.t_senior_function_data t on 1==1 where t.senior_name like concat('%',s.title,'%')

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章