我正在处理有条件的hive查询。前
select id, name from students
where id not in (1,2,3,4,5,6,7,8,9,10);
Hive不支持
select id, name from students
where (id <> 1 OR id <> 2 OR id <> 3 OR id <> 4 OR id <> 5
OR id <> 6 OR id <> 7 OR id <> 8 OR id <> 9 OR id <> 10);
我是否采取了正确的方法,如果没有。请建议我替代方案。
答案 0 :(得分:2)
根据documentation,Hive 支持NOT IN
:
A NOT IN(val1,val2,...)布尔值如果A不等于任何一个,则为TRUE 价值。从Hive开始,NOT IN中支持0.13子查询 语句。
您可能会将NOT IN
与子查询混淆,但这不是查询的结构。
另外,你可以随时做:
WHERE NOT (id in (1,2,3,4,5,6,7,8,9,10) )
而且,您的查询问题是or
应为and
s。
答案 1 :(得分:1)
请参阅https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
的逻辑运算符部分现在支持NOT IN查询。
A NOT IN(val1,val2,...)|布尔|如果A不等于任何值,则为TRUE。从Hive开始,在NOT IN语句中支持0.13子查询。