Sta*_*vas 0 sql t-sql sql-server case where
如果用户输入800 @WorkShop,则应返回所有具有800个车间ID和900个车间ID的记录.
如果用户传递任何其他ID,@WorkShop它应该只返回选择@WorkShopId的记录.
我试过以下:
SELECT *
FROM Test
WHERE Workshop IN (
CASE
WHEN @WorkShop = N'800' THEN N'900' AND N'800'
ELSE @WorkShop
END
)
Run Code Online (Sandbox Code Playgroud)
这会返回一个错误:
Incorrect syntax near the keyword 'and'.
Run Code Online (Sandbox Code Playgroud)
所以总之如果用户传递800作为@WorkShop参数它应该返回如下内容:
Workshop IN ('800', '900')
Run Code Online (Sandbox Code Playgroud)
这是你想要的吗?
SELECT *
FROM Test
WHERE ( @WorkShop = '800' AND Workshop IN('800', '900') )
OR @WorkShop = Workshop
Run Code Online (Sandbox Code Playgroud)