SQL

SQL - IF, CASE (조건에 따른 포맷 변경)

최 수빈 2024. 11. 22. 21:40

 

IF

  • 음식 타입이 'Korean'일 때는 '한식', 'Korean'이 아닌 경우에는 '기타'
  • 주소의 시·도 중 '경기도'는 '경기도'로, '경기도'가 아닌 경우는 앞의 두 글자만 사용하고 싶을 때
  • 음식의 단가를 주문 수량이 1일 때는 음식 가격, 주문 수량이 2개 이상일 때는 음식가격/주문수량으로 계산하기
if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)

(마치 삼항연산자같은ㅎㅎㅎ)

 

 

 

사용예시)

 

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

 

SELECT addr "원래 주소", 
	IF(addr like '%평택군%', REPLACE(addr, '문곡리', '문가리'), addr) "바뀐 주소"
FROM food_orders
WHERE addr like '%문곡리%'

평택군 문곡리만 문가리로 바꾸기

 

 

CASE

IF문을 여러번 쓴 효과를 낼 수 있음

 

 

CASE WHEN 조건1 THEN 값(수식)1
    WHEN 조건2 THEN 값(수식)2
    ELSE 값(수식)3
END

 

 

 

사용예시)

 

SELECT restaurant_name,
	cuisine_type "원래 음식 타입",
        CASE WHEN (cuisine_type='Korean') THEN '한식'
        WHEN(cuisine_type='Japanese') THEN '아시안'
        WHEN(cuisine_type='Chinese') THEN '아시안'
        ELSE '기타'
        END AS "음식 타입"
FROM food_orders

food_orders 테이블에서 Korean은 한식, Japanes, Chinese는 아시안, 다른 음식들은 기타로 '음식 타입'열에 넣기