프로그래머스/My SQL
조건별로 분류하여 주문상태 출력하기
싱싱한복초이
2024. 11. 26. 01:23
https://school.programmers.co.kr/learn/courses/30/lessons/131113
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제]
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 OUT_DATE <= '2022-05-01' THEN '출고완료'
WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
WHEN OUT_DATE IS NULL THEN '출고미정'
END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID;
[다른 풀이]
SELECT
ORDER_ID,
PRODUCT_ID,
DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE,
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;
SELECT ORDER_ID, PRODUCT_ID,
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
IF(OUT_DATE <='2022-05-01','출고완료', IF(OUT_DATE>'2022-05-01','출고대기','출고미정')) '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID
IF 조건절로도 '출고여부' 컬럼을 만들 수 있다