use*_*502 3 sql t-sql sql-server-2008
我在我的一个变量中得到一个输入,基本上我想做类似的事情
SELECT * FROM PEOPLE
WHERE
IF @INPUT = 1
ITEMID = 16 OR ITEMID = 13
ELSE IF @INPUT = 2
ITEMID = 11 OR ITEMID = 14
ELSE
ITEMID = 0
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,请原谅,如果这是错的,但我想尽可能容易理解我的问题.
在此之前我尝试过使用CASE
WHERE
CASE @INPUT
WHEN 1 THEN ITEMID = 16 OR ITEMID = 13
WHEN 2 THEN ITEMID = 11 OR ITEMID = 14
ELSE ITEMID = 0
END
Run Code Online (Sandbox Code Playgroud)
但是所有这些方法都会产生错误,我希望有一个好的建议,如果可能的话,更有效的方法.
感谢您的帮助.
WHERE (@INPUT = 1 AND ITEMID IN (13,16))
OR (@INPUT = 2 AND ITEMID IN (11,14))
OR (@INPUT NOT IN (1,2) AND ITEMID = 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |