
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131113
풀이
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d'),
CASE
WHEN OUT_DATE IS NULL THEN '출고미정'
WHEN TIMESTAMPDIFF(DAY,OUT_DATE,'2022-05-01') >= 0 THEN '출고완료'
ELSE '출고대기'
END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC;
CASE-WHEN 구문을 활용하여 OUT_DATE에 값에 따라 '출고미정', '출고완료', '출고대기' 값을 부여했습니다. 이때, 2022년 05월 1일자까지 출고된 물품들을 구별하기 위해 TIMESTAMPDIFF(DAY,'컬럼1','컬럼2')구문을 활용하였습니다.🦝🦝🦝
CASE-WHEN 대신 IF문으로 해결한 풀이도 볼 수 있었습니다.
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
감사합니다.🐪🐪🐪