Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 조건별로 분류하여 주문상태 출력하기 (MySQL) 본문

DB/프로그래머스(MySQL)

[프로그래머스] - 조건별로 분류하여 주문상태 출력하기 (MySQL)

luke-king 2025. 12. 2. 12:51

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'),
    CASE
        WHEN OUT_DATE <= '2022-05-01' THEN '출고완료'
        WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
        ELSE '출고미정'
    END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID;

이번 문제는 프로그래머스 "조건별로 분류하여 주문상태 출력하기" MySQL문제다.

문제 접근은 OUT_DATE 값이 2022-05-01 이후이면 "출고대기", 이전이면 "출고완료" NULL값이라면 "출고미정"으로 "출고여부" 컬럼으로 보여주면 된다.

그럼 바로 풀이 해보겠다.

 

1. 출력하기 위한 컬럼 값들을 넣어주고 OUT_DATE 같은 경우 DATE_FORMAT() 함수를 사용해 준다.

 

2. 흔히 Java에서 말하는 if-else if-else문을 사용할 건데 여기선 CASE문이다. 

WHEN에 OUT_DATE 값이 2022-05-01 값보다 작거나 같다면 출고완료,

OUT_DATE 값이 2022-05-01 값보다 크다면 출고대기,

나머지 ELSE는 출고 미정으로 해주고 END로 꼭 닫아줘야 한다. 그다음 별칭을 사용해 "출고여부"로 지정해 주면 된다.

 

3. 마지막으로 ORDER_ID값으로 오름차순 해주면 끝이다.