我正在使用hadoop2.7.3。当您运行一个hiveql命令并且在其中有一个where子句,其中包含'and'和'or'时,它是如何分配条件的?
例如,假设我有以下查询:
... where A and B or C and D.
它是否返回以下内容之一:
A or B or C or D
((A and B) or C) and D
(A and B and D) or C
A and (B or C) and D
我知道我可以用括号来确切地说明上面使用的是哪一个,但是默认情况下它做什么呢?
2条答案
按热度按时间91zkwejq1#
@gordonlinoff的答案是正确的。您可以通过使用以下查询构造真值表来验证这一点:
哪些输出:
因此,我们可以从经验上得出结论,这确实是
(A and B) or (C and D)
.guicsvcw2#
这是操作的优先级。
AND
结合得比OR
,所以:解释为: