Hive查询中LIKE子句中的动态条件

时间:2017-10-11 11:09:23

标签: sql hadoop hive hiveql

通常,当我在配置单元查询中应用LIKE条件时,我应用这样的静态条件 -

select * from table where col1 like '%abc%';

我有一个用例,我希望LIKE条件是动态的,我想要参数'%abc%'来自另一个hive表中的列,所以像这样 -

select * from table where col1 like (select regex from table2);

无论如何我可以在Hive中执行此操作吗?

通常在SQL中我可以通过LIKE条件的连接来实现,但据我所知,Hive只允许相等连接。

1 个答案:

答案 0 :(得分:0)

至少最新版本的Hive支持非等值连接(参见here)。

所以,你应该能够做到:

select t.*
from table t join
     table2 t2
     on t.col1 like t2.regex;  

请注意,like模式与正则表达式不同。 其中col1喜欢(从table2中选择正则表达式);