hive 如何查看字符串列表中的任何字符串是否包含在另一个字符串中

jgovgodb  于 2022-11-23  发布在  Hive
关注(0)|答案(1)|浏览(910)

我有一个很长的代码字符串,我想看看该字符串中是否有代码列表中的任何一个。例如,有没有方法可以查看以下字符串中是否有'a'或'B':
| 字符串|答案|
| - -|- -|
| 和|真的|
| 坏的|真的|
| 挡块|假的|
| 滞后|真的|
| 工作|真的|
我的真实的例子是一长串的诊断代码,然后是一个代码列表,我想看看它们中是否有任何一个在第一个字符串中。因此,如果可能的话,我不想把它们一一列出。我能比较的最接近的东西是带-f选项的grep。grep -Ff file 1 file 2将找到file 2中与file 1中的一行匹配的所有行。
文件1:
一种
B
文件2:

坏的
挡块
滞后
工作
grep -Ff文件1文件2将返回:

坏的
滞后
工作
在HIVE SQL中有类似的东西吗?
我知道in()不起作用,因为我的第一个字符串中有多个代码。Like似乎不能处理多个可能的字符串。是否有其他函数可以尝试?

yb3bgrhw

yb3bgrhw1#

您可以使用like。请参阅下列查询:

SELECT table2.*
FROM table1, table2 
WHERE table2.field1 LIKE concat('%', table1.field1, '%')

假设table1具有与file1相同的数据,table2具有与file2相同的数据,则将使用相似模式匹配针对table1.field1的每个值来检查table2.field1。

相关问题