gpt4 book ai didi

sql - 各个操作数的顺序会影响 SQL 表达式是否可搜索吗?

转载 作者:行者123 更新时间:2023-12-02 00:54:33 26 4
gpt4 key购买 nike

我的一位精通 SQL 的同事告诉我,> 或 = 表达式中操作数的顺序可以决定该表达式是否可搜索。特别是,对于其 case 语句包括的查询:

CASE
when (select count(i.id)
from inventory i
inner join orders o on o.idinventory = i.idInventory
where o.idOrder = @order) > 1 THEN 2
ELSE 1

并被告知将操作数的顺序反转为等效的

CASE
when 1 < (select count(i.id)
from inventory i
inner join orders o on o.idinventory = i.idInventory
where o.idOrder = @order) THEN 2
ELSE 1

出于可销售性问题。我发现查询计划没有区别,尽管最终我为了坚持团队编码标准而做出了改变。在某些情况下,我的同事所说的是否属实?表达式中操作数的顺序对其执行时间有潜在影响吗?这与我对 sargability 工作的理解不一致。

最佳答案

对于 Postgres,答案肯定是:“否”。(后来添加了 。)

只要 COMMUTATOR ,查询规划器就可以翻转运算符的左右操作数。已定义,< 的所有实例都是这种情况和 > . (运算符实际上是由运算符本身及其接受的操作数定义的。)查询计划器将这样做以使表达式“可搜索”。相关答案及详细解释:

没有COMMUTATOR的其他算子就不一样了. ~~ 的示例( LIKE ):

关于sql - 各个操作数的顺序会影响 SQL 表达式是否可搜索吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55343795/

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