본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 68일차_SQL_IF, CASE 배우기

by thriveview 2023. 11. 6.

04. 조건에 따라 포맷을 다르게 변경해야 한다면 (IF, CASE)

학습 목표: 조건에 따라 다른 연산을 하는 방법을 알아봅시다

 

’내가 원하는 범주’ 를 조건으로 주고, 해당 범주에 적용하고 싶은 것을 지정해 주는 방식이 가능하다. 

 

조건에 따라 다른 방법을 적용하고 싶을 때 - 함수명: if

if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)

 

실습1. 음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Korean’ 이 아닌 경우에는 ‘기타’ 라고 지정

select restaurant_name,
       cuisine_type "원래 음식 타입",
       if(cuisine_type='Korean', '한식', '기타') "음식 타입"
from food_orders

 

실습2. 조건을 여러가지 지정하고 싶을 때 - 함수: case

조건을 지정하다보면 2개 이상의 지정을 해야할때가 생긴다. 

그럴 때는 case문을 사용해서 여러번의 if문을 적용한 효과를 한번에 낼 수 있다. 

#사용방법
case when 조건1 then 값(수식)1
     when 조건2 then 값(수식)2
     else 값(수식)3
end

 

실습1. 주소의 시도를 ‘경기도’ 일때는 ‘경기도’, ‘특별시’ 혹은 ‘광역시’ 일 때는 붙여서, 아닐 때는 앞의 두 글자만 사용

 

select restaurant_name,
       addr,
       case when addr like '%경기도%' then '경기도'
            when addr like '%특별%' or addr like '%광역%' then substring(addr, 1, 5)
            else substring(addr, 1, 2) end "변경된 주소"
from food_orders