Welcome! Everything is fine.

[프로그래머스/Lv.3] 조건별로 분류하여 주문상태 출력하기 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.3] 조건별로 분류하여 주문상태 출력하기 - MySQL

개발곰발 2024. 3. 19.
728x90

📌 문제

 

프로그래머스

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

programmers.co.kr

📌 정답

CASE문 혹은 IF문으로 풀 수 있었다. 문법이 기억이 잘 나지 않아서 검색해서 풀었다.

SELECT ORDER_ID, PRODUCT_ID, 
       DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
       CASE
        WHEN DATE_FORMAT(OUT_DATE,'%m-%d') <= '05-01' THEN '출고완료'
        WHEN DATE_FORMAT(OUT_DATE,'%m-%d') > '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,
       IF(OUT_DATE <='2022-05-01','출고완료', IF(OUT_DATE>'2022-05-01','출고대기','출고미정')) `출고여부`
FROM FOOD_ORDER
ORDER BY ORDER_ID

📌 기억할 것

  • CASE WHEN 구문의 기본적인 사용법은 아래와 같다.
CASE
    WHEN [조건절] THEN [TRUE일 경우 값]
    ELSE [FALSE일 경우 값]
END
  • IF ELSE 구문의 기본적인 사용법은 아래와 같다.
IF [조건절 TRUE일 경우 값]
ELSE [조건절 FALSE일 경우 값]
END [컬럼 이름]