gpt4 book ai didi

sql - 存储过程中的可选参数 - CASE 与 OR

转载 作者:行者123 更新时间:2023-12-02 09:00:45 25 4
gpt4 key购买 nike

这些过滤方法之间在性能方面有什么区别吗?

Method 1: WHERE (@Col1 IS NULL OR t.column = @Col1) 


Method 2: WHERE 1 = case when @col1 is null then 1 else case when col1 = @col1 then 1 else 0 end end

最佳答案

如果您知道 Col1 列本身不包含任何空值,您可以执行以下操作:

WHERE Col1 = COALESCE(@Col1, Col1)

否则,您的 CASE 语句通常应该比 OR 做得更好一点。我强调“通常”,因为每张 table 都是不同的。您应该始终进行分析才能确定。

不幸的是,如果参数为空,通常最快的方法是首先使用动态sql从查询中排除条件。但当然,将其作为最后的优化手段。

关于sql - 存储过程中的可选参数 - CASE 与 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412041/

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