카테고리 없음

[SQL] 프로그래머스 고득점 kit - String, Date / 조건별로 분류하여 주문상태 출력하기

pearhyunjin 2024. 3. 21. 11:32

Lv.3 조건별로 분류하여 주문상태 출력하기

 

 

 

작성 답안

 

OUT_DATE 컬럼 값을 기준으로 출고 상태를 출력하는 컬럼이 생성되어야 하기 때문에 CASE WHEN 구문을 이용하여 조건을 나누었다.

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

 

 

 

 


 

CASE WHEN

조건에 따라 서로 다른 값을 추출해 컬럼 생성에 이용할 수 있는 구문. (프로그래밍 언어에서 IF() 구문과 유사)

  • 비교 연산자(>, <, =)와 NULL 연산자(IS NULL, IS NOT NULL) 등을 사용해 조건을 생성한다.
  • 논리 연산자(AND, OR) 등을 사용해 여러 조건을 연산하도록 할 수 있다.
  • WHEN ~ THEN ~ (ELSE) 를 이용해 다중 조건을 설정한다.
    이때, ELSE는 생략이 가능하며 생략할경우 조건에 부합하지 않으면 NULL을 반환한다.
SELECT	 *
  , CASE WHEN '조건' THEN '조건에 만족할 때 출력할 데이터' 
         ELSE '조건에 만족하지 않을 때 출력할 데이터' 
         END
FROM 테이블