我想在我的SQL查询的where子句中添加一个case或if语句。
我有一张开始和结束日期的旅程时间表,以及每天的布尔型字段来表示旅程在当天发生的地点。这里是我到目前为止,但我发现了不正确的语法错误:where语句中的case语句 - SQL Server
declare @date datetime
set @Date = '05/04/2012'
declare @day nvarchar(50)
set @day = 'Monday'
Select * From Times
WHERE (StartDate <= @Date) AND (EndDate >= @Date)
CASE WHEN @day = 'Monday' THEN
AND (Monday = 1)
WHEN @day = 'Tuesday' THEN
AND (Tuesday = 1)
ELSE
AND (Wednesday = 1)
END
在我看来,如果你有表的一个设计问题,有没有办法,你应该永远有列星期一,星期二,星期三等。您应该记住daya专栏,并填写您想要的日期或数字值,以查找您想要的日期。如果超过一天适用,则使用相关表格。 – HLGEM 2012-01-04 17:17:49