gpt4 book ai didi

sql-server - Where子句优化

转载 作者:行者123 更新时间:2023-12-02 05:07:37 24 4
gpt4 key购买 nike

我正在尝试优化 where 子句。它反复运行,我试图让查询更快地完成,但 or stament 正在显着减慢它的速度。如果你们能提供帮助,那就太好了!

WHERE 
((Date1 >= @startdate
AND Date1 <= @enddate
AND @RunBy = 0)
OR (date2 BETWEEN @startdate AND @enddate
AND @RunBy = 1
AND date2 BETWEEN @startdate AND @enddate)
OR (date3 BETWEEN @startdate AND @enddate
AND @RunBy = 2)
OR (date4 >= @startdate
AND date4 <= @enddate
AND @RunBy = 3))

我试图放入一个 case or 和 if,但它对我来说并不奏效。

最佳答案

您的 where 子句可以重写为:

WHERE CASE @RunBy
WHEN 0 THEN Date1
WHEN 1 THEN Date2
WHEN 2 THEN Date3
WHEN 3 THEN Date4
END BETWEEN @startdate AND @enddate

这应该会加快速度,因为您正在最小化正在执行的比较次数。

它也更容易阅读和理解,这是良好编程的本质,而且看起来也很酷!

关于sql-server - Where子句优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046507/

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