조건에 따라 포맷을 다르게 사용해야 하는 경우가 존재한다.
그럴 때는 어떤 것을 이용해야 하는가?
SQL에는 다른 프로그래밍 언어와 마찬가지로 조건문이 존재한다.
if문과 case문
Excel에서 쓰이는 IF문과 문법은 똑같다.
IF문의 기본구조는
if (조건, 조건 충족할 경우, 조건 충족안할 경우)
if문에서 조건 부분이 참 일 경우와 거짓일 경우에 대한 결과물을 넣어 놓는다.
select restaurant_name,
cuisine_type "원래 음식 타입",
if(cuisine_type='Korean', '한식', '기타') "음식 타입"
from food_orders
-> food_orders 테이블에서 상점이름, 레시피 타입, 그리고 레시피 타입이 한식인 경우한식이라 하고, 나머지는기타라고 설정해 놓는 것
프로그래밍 언어에서 가끔 쓰이는 Switch case문과 방식이 같은 문법으로 조건문을 쓸 때 참과 거짓 2가지만으로 표현하기 어려울 경우를 위한 문법이다.
3가지 이상에 대한 결과물을 적어놔야 하기 때문에, 매우 긴 글을 적어야 한다.
Case문의 기본 구조는
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default_result END AS new_column
condition1일 경우 result1, condition2인 경우 result 2, 나머지는 default_result값 끝에 END를 붙이면 끝 (AS를 붙여서 원래의 컬럼과 다른 값이 나올 수 있기에 컬럼의 속성 값을 바꿔 주는게 좋다)
SELECT CASE when cuisine_type='Korean' then '한식'
when cuisine_type in ('Japanese', 'Chinese') then '아시아'
else '기타' end "음식타입", cuisine_type
from food_orders
food_orders 테이블에서 레시피 타입이 Korean인 경우 한식, Japanese나 Chinese인 경우 아시아, 나머지의 경우 기타라 적고 속성 값을 음식 타입이라 컬럼 속성 이름을 만든다.