gpt4 book ai didi

sql-server - SQL Server 2016 : WHERE statement evaluation

转载 作者:行者123 更新时间:2023-12-01 23:22:29 24 4
gpt4 key购买 nike

我有这样的东西

declare @par int = null

select
count(distinct(t1.id))
from
my_table t1
left outer join
some_other t2 on t1.a = t2.b
where
@par is null or t2.c = @par

@par 为空。注释掉这个 where 子句后,查询速度很快,未注释时查询速度很慢。结果是一样的。

为什么?难道它不能发现 or 陈述的第一部分是正确的而不评估第二部分吗?如何最好地解决这个问题(当 @par 为空时使其更快)。

SQL Server 2016

最佳答案

WHERE 替换为 AND ()

select count(distinct(t1.id))
from my_table t1
left outer join some_other t2 on t1.a = t2.b
AND ( @par is null or t2.c = @par )

关于sql-server - SQL Server 2016 : WHERE statement evaluation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39371479/

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