💡문제 풀이/프로그래머스 - Oracle

조건별로 분류하여 주문상태 출력하기 / 131113

뇌 리셋은 기본이지 2024. 6. 25. 16:18

정보

분류 : String, Date

 

문제

문제링크

 

풀이

-- 조       건 : 출고여부는 5월 1일까지 '출고완료', 이 후 날짜는 '출고 대기'로 미정이면 '출고미정'
-- 조회컬럼 : 주문 ID, 제품 ID, 출고일자, 출고여부
-- 정렬기준 : 주문 ID를 기준으로 오름차순 정렬
SELECT ORDER_ID
     , PRODUCT_ID
     , TO_CHAR(OUT_DATE, 'YYYY-MM-DD') AS "OUT_DATE"
     , CASE WHEN OUT_DATE <= TO_DATE('20220501','YYYYMMDD') THEN '출고완료'
            WHEN OUT_DATE >  TO_DATE('20220501','YYYYMMDD') THEN '출고대기'
            WHEN OUT_DATE IS NULL                           THEN '출고미정'
        END AS "출고여부"
  FROM FOOD_ORDER
 ORDER BY ORDER_ID

 

풀이 내용

출고완료는 5월 1일'까지'니까 (<=) 연산자를 사용해주었고, '이 후' 날짜니까 (>) 연산자를 사용해주었다. 입고는 되었으나 출고되지 않은 상품은 OUT_DATE 컬럼에 대한 데이터가 NULL 일테니 IS NULL을 사용해주었다.