【发布时间】:2014-07-29 20:09:26
【问题描述】:
我正在尝试创建一个 select 语句,其中包含一个可互换的 where 语句,我进行了 2 次尝试,但无法向您展示尝试理解我想要实现的目标
变量@holidayType 确定用户预订的假期类型,我希望它也确定运行哪个WHERE 语句
下面是我的第一次尝试
IF @HolidayType = 'P'
BEGIN
WHERE Holidays.Type <> 'A'
AND Holidays.Type <> 'DE'
END
ELSE
BEGIN
IF @HolidayType = 'A'
BEGIN
WHERE Holidays.Type <> 'P'
AND Holidays.Type <> 'DE'
END
ELSE
BEGIN
WHERE Holidays.status <> 'DE'
END
END
下面是我的第二次尝试(更清楚一点)
WHERE
(
CASE @HolidayType
WHEN 'A' THEN (Holidays.Type <> 'P' AND Holidays.Type <> 'DE')
WHEN 'P' THEN (Holidays.Type <> 'A' AND Holidays.Type <> 'DE')
WHEN 'F' THEN (Holidays.status <> 'DE')
END
)
它们之前的选择都比较简单,只是添加了Where语句对我来说很难。
【问题讨论】:
标签: sql-server tsql select case where