sql - T-SQL ISNULL() 优化

标签 sql sql-server tsql optimization

我在继承的存储过程中的联接上有这个子句:

WHERE a.is_active = 1
AND b.due_date <= ISNULL(@due_date_limit, b.due_date)

我该如何重写它以删除 ISNULL,因为它会导致严重的性能问题?

最佳答案

在这种情况下,我将有一个 if 语句,检查 @due_date_limit

IF (@due_date_limit IS NULL)
BEGIN
    ...
    WHERE   a.is_active = 1 --not required to compare b.due_date <= b.due_date
END
ELSE
BEGIN
    ...
    WHERE   a.is_active = 1
    AND     b.due_date <= @due_date_limit
END

关于sql - T-SQL ISNULL() 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444781/

相关文章:

sql-server - 在 Reporting Services 报表中隐藏页面滚动控件

sql-server - 在sql server中转换为ASCII字符

MySQL根据字段值加入不同的表

sql - 在 postgres "in"子句中使用变量

c# - 编写高效的 .Net/SQL Server 代码

c# - 使用一个 SQL 命令从 sql 中获取全部或部分结果

sql - 将所有序列的序列更改为具有最大 ID 的所有列

mysql - 通过对用户进行积分排名来创建 View

sql - Oracle 查询以识别具有特殊字符的列

sql-server - SQL Server 中的 LEFT JOIN 与 LEFT OUTER JOIN