2016-08-19 34 views
1

我正在配置单元查询,我有条件。前许多AND条件的替代

select id, name from students 
where id not in (1,2,3,4,5,6,7,8,9,10); 

蜂房不支持不

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

'NOT IN'翻译为'AND':'其中(id <> 1 AND id <> 2 AND ..' – dnoeth

+1

不,您必须使用AND而不是'OR' – dnoeth

回答

2

按照documentation,蜂巢确实支持NOT IN

一个NOT IN(VAL1,VAL2 ...)Boolean如果A不等于任何 值的。至于Hive 0.13子查询在NOT IN 语句中受支持。

您可能会混淆NOT IN与子查询,但这不是您的查询结构。

此外,你总是可以做:

WHERE NOT (id in (1,2,3,4,5,6,7,8,9,10)) 

而且,随着您的查询的问题是,or S的关系是and秒。