본문 바로가기

MySql

[내일 배움 캠프 3-4] IF, CASE 조건

범주별로 값을 구할 때 GROUP BY 를 썼던 것 처럼, 조건도 범주별로 다른 연산을 적용할 수 있도록 SQL이 제공한다. 

 

1. IF 

- 조건에 따라 다른 방법을 적용하고 싶을 때 사용한다.

- 구조 : IF(조건, 조건을 충족하는 경우, 조건을 충족하지 못하는 경우)

SELECT restaurant_name,
       cuisine_type "원래 음식 타입",
       IF(cuisine_type='Korean', '한식', '기타') "음식 타입"
FROM food_orders

결과 : cuisine_type이 korean이면, 한식으로 표기, 아니면 기타로 표기

  • IF는 SELECT, WHERE, ORDER BY에서 사용할 수 있다.

 

 

 

2. CASE

- 조건을 여러가지 지정하고 싶을 때 사용한다.

- 구조 : CASE WHEN 조건1 THEN 값(수식)1

                       WHEN 조건2 THEN 값(수식)2

                       ....

                       ELSE 값(수식)3 END 컬럼명

SELECT order_id,
       price,
       quantity,
       case when quantity=1 then price
            when quantity>=2 then price/quantity end "음식 단가"
FROM food_orders

결과 : 주문 양이 2개 이상인 경우, 음식 단가가 1개에 맞춰서 계산되었다.

  • CASE는  SELECT, WHERE, GROUP BY, ORDER BY에서 사용할 수 있다.