카테고리 없음
[SQL] 프로그래머스 고득점 kit - String, Date / 조건별로 분류하여 주문상태 출력하기
pearhyunjin
2024. 3. 21. 11:32
Lv.3 조건별로 분류하여 주문상태 출력하기
작성 답안
OUT_DATE 컬럼 값을 기준으로 출고 상태를 출력하는 컬럼이 생성되어야 하기 때문에 CASE WHEN 구문을 이용하여 조건을 나누었다.
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'),
CASE WHEN DATE_FORMAT(OUT_DATE,'%m-%d') <= '05-01' THEN '출고완료'
WHEN DATE_FORMAT(OUT_DATE,'%m-%d') > '05-01' THEN '출고대기'
ELSE '출고미정'
END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC;
CASE WHEN
조건에 따라 서로 다른 값을 추출해 컬럼 생성에 이용할 수 있는 구문. (프로그래밍 언어에서 IF() 구문과 유사)
- 비교 연산자(>, <, =)와 NULL 연산자(IS NULL, IS NOT NULL) 등을 사용해 조건을 생성한다.
- 논리 연산자(AND, OR) 등을 사용해 여러 조건을 연산하도록 할 수 있다.
- WHEN ~ THEN ~ (ELSE) 를 이용해 다중 조건을 설정한다.
이때, ELSE는 생략이 가능하며 생략할경우 조건에 부합하지 않으면 NULL을 반환한다.
SELECT *
, CASE WHEN '조건' THEN '조건에 만족할 때 출력할 데이터'
ELSE '조건에 만족하지 않을 때 출력할 데이터'
END
FROM 테이블