프로그래머스/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 조건절로도 '출고여부' 컬럼을 만들 수 있다