如果用户将800设为@WorkShop
,则应返回所有具有800个研讨会ID和900个研讨会ID的记录。
如果用户将任何其他ID传递为@WorkShop
,则应仅返回选择@WorkShop
ID的记录。
我试过以下:
SELECT *
FROM Test
WHERE Workshop IN (
CASE
WHEN @WorkShop = N'800' THEN N'900' AND N'800'
ELSE @WorkShop
END
)
这会返回错误:
Incorrect syntax near the keyword 'and'.
总之,如果用户将800作为@WorkShop
参数传递它应该返回类似的内容:
Workshop IN ('800', '900')
答案 0 :(得分:8)
这是你想要的吗?
SELECT *
FROM Test
WHERE ( @WorkShop = '800' AND Workshop IN('800', '900') )
OR @WorkShop = Workshop
答案 1 :(得分:2)
另一种方法
SELECT *
FROM Test
WHERE Workshop IN ( @WorkShop, CASE
WHEN @WorkShop = N'800' THEN N'900'
END )
答案 2 :(得分:1)
试试这个:
SELECT *
FROM Test
WHERE (@WorkShop = '800' AND (Workshop = '800' or Workshop = '900'))
OR @WorkShop = Workshop