如果用户将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')发布于 2015-06-01 13:07:19
这是你想要的吗?
SELECT *
FROM Test
WHERE ( @WorkShop = '800' AND Workshop IN('800', '900') )
OR @WorkShop = Workshop发布于 2015-06-01 14:17:58
另一种方法
SELECT *
FROM Test
WHERE Workshop IN ( @WorkShop, CASE
WHEN @WorkShop = N'800' THEN N'900'
END ) 发布于 2015-06-01 13:08:15
试试这个:
SELECT *
FROM Test
WHERE (@WorkShop = '800' AND (Workshop = '800' or Workshop = '900'))
OR @WorkShop = Workshophttps://stackoverflow.com/questions/30574312
复制相似问题