通常,当我在配置单元查询中应用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只允许相等连接。
答案 0 :(得分:0)
至少最新版本的Hive支持非等值连接(参见here)。
所以,你应该能够做到:
select t.*
from table t join
table2 t2
on t.col1 like t2.regex;
请注意,like
模式与正则表达式不同。
其中col1喜欢(从table2中选择正则表达式);