내 변수 중 하나에 입력을 얻고 기본적으로 내가는 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
같은 것을하고 싶지이 할 수있는 방법이 있나요에 입력을 평가하는 방법, 용서하십시오 잘못되었지만 가능한 한 쉽게 이해할 수 있도록 내 문제를 묘사하고 싶었습니다.
내가 이런
WHERE
CASE @INPUT
WHEN 1 THEN ITEMID = 16 OR ITEMID = 13
WHEN 2 THEN ITEMID = 11 OR ITEMID = 14
ELSE ITEMID = 0
END
그러나 이러한 방법의 모든 오류가 발생하기 전에 CASE로 시도, 나는 좋은 조언, 가능하면이 작업을 수행하는 더 효율적인 방법을 부탁드립니다.
도움 주셔서 감사합니다.
일반적으로 쿼리의 ID를 하드 코딩하지 않으려합니다. 13, 16 또는 11과 14에 대해 특별한 것이 있습니까? 그것들은 스스로 범주 또는 그룹이 될 수 있습니까? 아마도 테이블에 요소 그룹을 식별하는 새로운 열이 있어야 할 것입니다. 이렇게하면 쿼리를 그렇게 단순화 할 수 있습니다. 유지 보수 측면에서 생각해보십시오. 실제로 하드 코딩 된 ID를 유지하려고합니까? –