我正在輸入我的變量之一,基本上我想要做這樣的事情如何在WHERE子句
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
但是,所有這些方法拋出錯誤之前,我將不勝感激一個善意的提醒,更有效的方式,如果有可能做到這一點。
謝謝你的幫助。
通常我會盡量避免在查詢中像這樣硬編碼ID。 13和16或者11和14有什麼特別之處?他們可以自己成爲一個類別還是一個組?也許你的表需要一個新的列來標識元素組 - 你可以這樣簡化你的查詢。在維護方面考慮一下 - 你是否真的想維護這些硬編碼的ID? – 2012-07-31 02:58:16