【发布时间】:2017-01-30 08:40:01
【问题描述】:
在 T-SQL WHERE 子句中,
如果有CI.end_date,我希望admit_date 介于CI.start_date 和CI.end_date 之间。如果没有结束日期,那么我希望 admit_date 成为 >= CI.start_date
WHERE 1=1
AND CASE WHEN CI.end_date IS NULL
THEN CEV.admit_date >= CI.start_date
ELSE CEV.admit_date BETWEEN CI.start_date AND CI.end_date
END
这将不起作用,因为我无法将此 CASE 作为 WHERE 子句中表达式的一部分,而不是表达式本身。
我该如何实现?
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 case