首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgresSQL与算子

PostgresSQL与算子
EN

Stack Overflow用户
提问于 2022-08-11 15:49:33
回答 1查看 39关注 0票数 1

我有如下所示的查询。

代码语言:javascript
复制
SELECT * FROM table WHERE A AND B

其中A和B是条件(B比A慢)。

有没有人知道A和B是否会一直被评估,或者B是否只在A被评估为'true‘时才被评估?

非常感谢

帕特里克

EN

回答 1

Stack Overflow用户

发布于 2022-08-11 16:51:18

这种行为,你认为是所谓的“短路评估”

在stackOverflow上已经有很多关于这个主题的条目,例如这里。但简而言之:你不知道!请参阅PostgreSQL文档这里。上面写着:

没有定义子表达式的求值顺序。特别是,运算符或函数的输入不一定是从左到右或按任何其他固定顺序计算的。此外,如果只能通过计算表达式的某些部分来确定表达式的结果,则可能根本不计算的其他子表达式

如果您继续阅读文档,那么您将看到文档始终像这样模糊。

因此,摘要:一般来说,SQL是声明性的,这意味着您可以告诉数据库框架您想要什么,但不能告诉您希望如何计算它。该系统可以在这方面自由作出选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73323579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档