具有like语句的多个通配符值

wgmfuz8q  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(387)

hive/hadoop—如何使用like语句创建具有多个通配符值的查询(我尝试了similar to命令,但没有成功)。
示例查询

select *
from schema.table a
where a.apple = '1'
and a.berry LIKE ('A10%','B10%')
;

上述方法不起作用。我确实尝试将like替换为in,但是查询拒绝停止运行,不确定in命令为什么导致查询继续运行,甚至不产生结果。是用还是我唯一的选择?我有大约15个值,我想对通配符值。
作为一个旁注问题,为了更好地帮助我理解上述问题,我注意到我的查询在使用时没有结束时间:

and a.berry IN ('A10%')

and a.berry LIKE 'A10%'

我应该一直用like和通配符%吗?

gpnt7bae

gpnt7bae1#

LIKE 以及 IN 不能做你想做的事: LIKE 对标量操作数执行操作,而 IN 不进行模式匹配。
您需要重复以下表达式:

and (a.berry like 'A10%' or a.berry like 'B10%')

另一个选择是使用正则表达式-当值列表变长时,键入正则表达式会变短:

and a.berry rlike '^(A10)|(B10)'

或:

and a.berry rlike '^[AB]10'

相关问题