首页 > 解决方案 > 对 ISNULL 的 case 语句

问题描述

我对 T-SQL 很陌生,我希望使用 isnull 来简化这个查询。

case 
when datediff(d, appdate, disdate) IS NOT NULL THEN datediff(d, appdate, disdate) 
ELSE 
    Case 
        when appdate is null THEN datediff(d,update,getdate())
        when disdate IS NULL THEN datediff(d,appdate,getdate())
    END
END

标签: tsql

解决方案


没有太大的简化,但这应该做同样的事情:

ISNULL(datediff(d, appdate, disdate) , 
    CASE WHEN appdate IS NULL THEN datediff(d,update,getdate())
         WHEN disdate IS NULL THEN datediff(d,appdate,getdate()) END
) 

推荐阅读