SQL 레벨업 8강: UNION을 사용한 쓸데없이 긴 표현
UNION을 활용한 조건 분기는, WHERE 구만 조금씩 변경한
SELECT구문을 합치면 복수의 조건을 만족하는 하나의 결과 집합을 얻고 싶을 때 사용한다.
하지만 이런 방식은 하나의 SQL 구문을 실행하는 것으로 보이지만, 내부적으로는 여러개의 SELCT문이 작동한다.
그렇기 때문에 CASE와 같은 조건 분기를 쓰는 것이 더 효율적이다.
- UNION 사용
SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year <= 2001 UNION ALL SELECT item_name, year, price_tax_in AS price FROM Items WHERE year >= 2002;
- CASE 사용
SELECT item_name, year, CASE WHEN year <= 2001 THEN price_tax_ex WHEN year >= 2002 THEN price_tax_in END AS price FROM Items;