首页 > 解决方案 > 这个case语句是不必要的吗?

问题描述

我正在重构一些代码并遇到了这个

WHERE CASE 
            WHEN (cast(ISNULL(datetimeColumn, '19990101') as date) >= '20160101') THEN 1 
            ELSE 0 
        END = 1 

这对我来说似乎过于复杂。

这不能简单吗:

WHERE cast(ISNULL(datetimeColumn, '19990101') as date) >= '20160101'

或者更简单:

WHERE ISNULL(datetimeColumn, '19990101') >= '20160101'

标签: sql-servercase

解决方案


你只需这样做:

WHERE datetimeColumn >= '20160101'

推荐阅读