【发布时间】:2012-01-04 17:11:31
【问题描述】:
我正在尝试在我的 SQL 查询的 where 子句中添加 case 或 if 语句。
我有一张包含开始和结束日期的旅程时间表,以及每天的布尔字段来表示当天旅程发生的位置。这是我目前所拥有的,但我遇到了不正确的语法错误:
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 列并用你的那一天填充它want 或一个数值,用于查找您想要的日期。如果超过一天适用,则使用相关表格。
标签: sql sql-server