Algorithm/Programmers SQL

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

제우제우 2024. 9. 16. 19:38

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코딩테스트 연습 > String, Date > 조건별로 분류하여 주문상태 출력하기

문제 분석

난이도: LEVEL3

 

문제 요구사항

FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 

출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.

 

정답 코드 

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

 

OUT_DATE

그대로 출력하면 시간-분-초 포맷도 함께 나온다 년-월-일 포맷만 나오도록 DATE_FORMAT 활용 

 

출고여부 (2022년 05월 01일 기준)

만약 OUT_DATE가 NULL 이면 출고미정 

OUT_DATE가 2022-05-01 이하면 출고완료 

OUT_DATE가 2022-05-01 초과면 출고대기 

 

조건별로 분류를 위해 CASE WHEN 사용