[SQL] 조건별로 분류하여 주문상태 출력하기

NoHae·2025년 10월 28일

SQL

목록 보기
76/86

문제 출처

코딩테스트 연습 > 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 "출고미정"

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글