我有一個名爲SEN的列的Students表。 SEN包含每個記錄的S,A,P或N.在我的WHERE子句中,我想根據SEN中的值過濾我的結果集。我的SELECT語句包含一個名爲subgroup的變量,它由參數填充。我設法得到這個工作時過濾到某個值,是SEN列即:在OR子句的where子句中選擇case
SEN = CASE
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup = 'SENNo' THEN 'N'
END
,但我想過濾如果學生是A,P或S,並使用該參數值觸發此過濾器'SENYes'。我下面的代碼不起作用,但可以說明我要求的內容。
SEN = CASE
WHEN @Subgroup = 'SENYes' THEN 'A' OR 'P' OR 'S'
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup = 'SENNo' THEN 'N'
END
UPDATE:
用我的代碼中的IN操作符的工作:
SEN = CASE
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup = 'SENNo' THEN 'N'
END
OR
(@SubGroup='SENYes' AND SEN IN ('A','P','S'))
你能給你想要的結果樣本記錄? –
請問這個問題有什麼問題,它需要一個投票嗎?我想知道,所以我可以避免將來出現任何錯誤? – Matt