我正在输入一个变量,基本上我想做类似的事情
SELECT * FROM PEOPLE WHERE IF @INPUT = 1 ITEMID = 16 OR ITEMID = 13 ELSE IF @INPUT = 2 ITEMID = 11 OR ITEMID = 14 ELSE ITEMID = 0
有没有办法做到这一点,如果这是错误的,请原谅,但我想将我的问题描述得尽可能容易理解。
我像这样尝试过CASE
WHERE CASE @INPUT WHEN 1 THEN ITEMID = 16 OR ITEMID = 13 WHEN 2 THEN ITEMID = 11 OR ITEMID = 14 ELSE ITEMID = 0 END
但是所有这些方法都会引发错误,如果可以的话,我将提供一个很好的建议,一种更有效的方式来实现此目的。
感谢您的帮助。
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)