[SQL 문제 풀이] 조건별로 분류하여 주문상태 출력하기

프로그래머스 (131113)
Stupefyee's avatar
Apr 07, 2025
[SQL 문제 풀이] 조건별로 분류하여 주문상태 출력하기
notion image
 

내가 작성한 쿼리

Oracle

SELECT ORDER_ID, PRODUCT_ID, TO_CHAR(OUT_DATE,'YYYY-MM-DD') OUT_DATE, CASE WHEN OUT_DATE <= DATE '2022-05-01' THEN '출고완료' WHEN OUT_DATE > DATE '2022-05-01' THEN '출고대기' ELSE '출고미정' END AS 출고여부 FROM FOOD_ORDER ORDER BY ORDER_ID;

MySQL

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

차이점

  • 날짜 변환 방식의 차이
  • 묵시적 형변환 범위의 차이
    • MySQL : 넓은 범위를 지원
    • Oracle : 좁은 범위를 지원 → 문자열 ↔ 숫자, 문자열 ↔ 날짜 지원
 
Share article

stupefyee