gpt4 book ai didi

sql - WHERE子句标准sql中的括号是否

转载 作者:行者123 更新时间:2023-12-04 04:59:48 25 4
gpt4 key购买 nike

我目前正在做的类(class)在其 WHERE 子句中使用括号,如下所示:

SELECT bar
FROM Foo
WHERE (CurrentState = 'happy');

这是标准的 sql 吗?
如果没有,那么为什么要使用它们?

似乎没有在我拥有的 Date & Darwen 书中使用。

编辑

澄清一下——我指的是 1992 年的 sql 标准

最佳答案

是的。您可以使用括号来绑定(bind) where 子句的组件。在您的示例中这不是必需的,但如果您有多个 andor组件,您可能需要括号来确保正确的操作顺序或简单地对查询进行自我记录。

示例 1:

select *
from foo
where
(class='A' and subclass='B')
or (class='C' and subclass='D')

在示例 1 中,括号不是严格要求的,因为 andor 结合得更紧密,但如果您有多个 orand 绑定(bind)的条件您需要它来获得正确的结果,如下面的示例 2 所示。

示例 2:
select *
from foo
where
(class='A' or class='B')
and (subclass='C' or subclass='D')

我在这两种情况下都使用它们,因为我不喜欢像查询优化器那样在脑海中解析 sql —— 我宁愿明确说明它并更快地理解意图是什么。

关于sql - WHERE子句标准sql中的括号是否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com