문제
https://school.programmers.co.kr/learn/courses/30/lessons/131113
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
MySQL의 CASE ~ WHEN을 사용해서 해결할 수 있었다.
우리가 기본적으로 필요한 컬럼들은 쌩으로 받아와도 되지만 "출고여부"와 같은 컬럼은 테이블에 존재하지 않는 컬럼이기 때문에 OUT_DATE 컬럼과 CASE ~ WHEN을 활용하여 조건분기에 따라 해당 값을 가지도록 해주면 문제를 해결할 수 있다.
문제를 풀면서 주의할 점은 OUT_DATE는 DATE_FORMAT을 활용해 문제에 알맞은 형식으로 출력하도록 해주고, CASE ~ WHEN에서 OUT_DATE의 대소를 비교할 때 비교 대상 날짜(2022-05-01)을 문자열 형식으로 비교하도록 해주어야한다.
쿼리
SELECT
ORDER_ID,
PRODUCT_ID,
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
(CASE
WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
WHEN OUT_DATE IS NULL THEN '출고미정'
ELSE '출고완료'
END) AS '출고여부'
FROM
FOOD_ORDER
ORDER BY
ORDER_ID ASC
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level2 상품 별 오프라인 매출 구하기 MySQL (0) | 2022.11.02 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level3 오랜 기간 보호한 동물(2) MySQL (0) | 2022.11.01 |
[프로그래머스-SQL] 프로그래머스 SQL Level2 성분으로 구분한 아이스크림 총 주문량 MySQL (0) | 2022.10.28 |
[프로그래머스-SQL] 프로그래머스 SQL Level4 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL (0) | 2022.10.13 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL (0) | 2022.10.12 |