我正在使用SQL Server数据库。
此查询:
SELECT *
FROM table1
WHERE table1.name = 'something'
AND CASE
WHEN table1.date IS NULL THEN 1 = 1
ELSE table1.date >= '2013-09-24'
END;
给了我错误:
[错误代码:102,SQL状态:S0001]'='附近的语法不正确。
感谢任何帮助,
提前致谢
mismas
答案 0 :(得分:4)
我认为这就是你想要的。
select
*
from
table1
where
table1.name = 'something' and (
table1.date is null or
table1.date >= '2013-09-24'
);
SQL Server实际上没有可以作为结果使用的布尔类型。
答案 1 :(得分:2)
试试这段代码:
select *
from table1
where table1.name='something'
and (table1.date is null Or table1.date >= '2013-09-24');
答案 2 :(得分:1)
您可以考虑coalesce关键字。
select
*
from
table1
where
table1.name='something' and
coalesce(table1.date,'2013-09-24') >= '2013-09-24';
Coalesce 会返回非空的第一个参数。