본문 바로가기

프로그래머스 풀이/Lv 3

조건별로 분류하여 주문상태 출력하기 - SQL

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/131113

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SQL 코딩테스트를 대비해서 SQL도 풀려고한다. 진작했어야하는데 대체 뭐했지? 지난날의 대한 후회는 접어두고 지금부터 열심히 하도록 하자.

 

이 문제는 출력해야할 열을 SELECT 하는것이 아니라 조건에 따른 열 값을 넣어야한다. 어떻게 해야할지 몰라서 찾아보니 CASE를 사용하면 된다고 한다. CASE 구문은 보통 SELECT에 사용되며 WHERE에도 사용할 수 있다.

 

이 문제는 CASE 구문만 사용할 줄 알면 빠르게 풀리는 문제였다.

 

-- 코드를 입력하세요
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'), 
    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;