sql - SQL Hive Hadoop-具有Like语句的多个通配符值

标签 sql hadoop hive where-clause sql-like

HIVE / Hadoop-如何使用like语句创建具有多个通配符值的查询(我尝试与command相似,但是不起作用)。
查询示例

select *
from schema.table a
where a.apple = '1'
and a.berry LIKE ('A10%','B10%')
;
上面没有用。我确实尝试用IN替换LIKE,但查询拒绝停止运行,不确定为什么IN命令导致查询继续运行,甚至没有产生结果。在这里使用OR是我唯一的选择吗?我希望使用通配符值,大约有15个值。

作为附带说明的问题,可以帮助我更好地理解上述问题,
我发现使用以下命令时,我的查询没有结束时间:
and a.berry IN ('A10%')
and a.berry LIKE 'A10%'
我应该始终将LIKE与通配符%一起使用吗?

最佳答案

LIKEIN无法满足您的要求:LIKE对标量操作数进行操作,而IN不对模式进行匹配。
您需要重复该表达式:

and (a.berry like 'A10%' or a.berry like 'B10%')
另一个选择是使用正则表达式-当值列表变长时,它的键入时间较短:
and a.berry rlike '^(A10)|(B10)'
要么:
and a.berry rlike '^[AB]10'

关于sql - SQL Hive Hadoop-具有Like语句的多个通配符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63892779/

相关文章:

mysql - 将文本添加到 phpmyadmin 中的现有单元格

sql - Oracle SQL 触发器 - DBMS_OUTPUT.PUT_LINE

java - 不同的输出文件

hadoop - 将数据从 pig 加载到 elasticsearch

python - 来自python程序的配置单元查询返回的输出类似于 “x00e\x00”\x00“

php - Mysql VIEWS 与 PHP 查询

sql - 连接具有两个任务列表和用户列表的表

hadoop - 在 HDFS 中插入文件时出现问题

sql - Hive:无法执行带限制的联合查询

Hadoop 查询将行值与组值进行比较,带条件