코딩테스트 연습 > String, Date > 조건별로 분류하여 주문상태 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131113

FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성하라. 출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력, 결과는 주문 ID를 기준으로 오름차순 정렬하라.
SELECT
ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, "%Y-%m-%d") AS OUT_DATE,
(
CASE
WHEN DATE_FORMAT(OUT_DATE, "%Y-%m-%d") <= "2022-05-01" THEN "출고완료"
WHEN DATE_FORMAT(OUT_DATE, "%Y-%m-%d") > "2022-05-01" THEN "출고대기"
ELSE "출고미정"
END
) AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC
CASE 구문에서 WHEN 이후에 OUT_DATE <= "2022-05-01"로만 해도 잘 작동한다.
만약 "출고미정" 또한 WHEN으로 처리하고 싶다면 다음과 같이 작성하면 된다.
WHEN OUT_DATE IS NULL THEN "출고미정"