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 사용