Road to Data Scientist

[프로그래머스] 조건별로 분류하여 주문상태 출력하기 Lv.3 본문

코딩 테스트/SQL

[프로그래머스] 조건별로 분류하여 주문상태 출력하기 Lv.3

ShazelP 2025. 11. 14. 19:26

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

FOOD_ORDER 테이블

 

문제

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 OUT_DATE IS NULL THEN '출고미정' 
           ELSE '출고대기' END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID;

 

설명

1. CASE WHEN 활용

1.1 DATE_FORMAT(OUT_DATE, '%Y-%m-%d') <= '2022-05-01' 일 경우 THEN '출고완료'

1.2 값이 없는 경우 미정이므로 OUT_DATE IS NULL 인 경우 THEN '출고미정'

1.3 나머지는 이후 날짜이므로 ELSE '출고대기'

2. 정답 예시와 같게 SELECT 문에서 칼럼 선택

3. 주문 아이디 기준 오름차순 ORDER BY ORDER_ID;(디폴트값이 ASC 이므로 생략가능)

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/131113

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr