我想要做的是让查询考虑或不考虑日期时间值,所以我不必在存储过程中执行此操作
if @considerDate =1
begin
select * from table
where dateCol = @date
end
else
begin
select * from table
end
我想做一些像
这样的想法select * from table
where dateCol = ( case
when @date is not null
then @date
)
在单个查询中
答案 0 :(得分:14)
您只需添加END
关键字
SELECT *
FROM tableName
WHERE dateCol = CASE WHEN @considerDate =1
THEN @date
ELSE dateCol
END
答案 1 :(得分:4)
如果我理解正确,这应该有效:
SELECT *
FROM Table
WHERE dateCol =
CASE WHEN @date is not null then @date ELSE dateCol END
答案 2 :(得分:2)
难道你不能做这样更清楚的事吗?
SELECT *
FROM table
WHERE dateCol = IsNull(@date, dateCol)