on my way
[프로그래머스 코딩테스트 연습 SQL - 12] 조건별로 분류하여 주문상태 출력하기 (MySQL) 본문
반응형
처음 푼 코드
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE,
CASE
WHEN DATEDIFF(OUT_DATE,'2022-05-01') <= 0 THEN '출고완료'
WHEN DATEDIFF(OUT_DATE,'2022-05-01') > 0 THEN '출고대기'
ELSE '출고미정'
END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID
DATEDIFF 함수로 날짜를 비교함. NULL을 뒤에 처리함
개선 코드
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE,
CASE
WHEN OUT_DATE IS NULL THEN '출고미정'
WHEN OUT_DATE <= '2022-05-01' THEN '출고완료'
ELSE '출고대기'
END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_IDㄴ
NULL을 먼저 처리하고, 이후에 DATEDIFF없이 문자열로만 비교해서 처리할 수 있었다
반응형
'algorithm > SQL' 카테고리의 다른 글
[프로그래머스 코딩테스트 연습 SQL - 14] 조건에 맞는 개발자 찾기 (MySQL) | SQL BIT 연산 (0) | 2024.08.04 |
---|---|
[프로그래머스 코딩테스트 연습 SQL - 13] 노선별 평균 역 사이 거리 조회하기 (MySQL) (0) | 2024.08.04 |
[프로그래머스 코딩테스트 연습 SQL - 11] 카테고리 별 도서 판매량 집계하기 (MySQL) (0) | 2024.07.16 |
[프로그래머스 코딩테스트 연습 SQL - 10] 상위 n개 레코드 (MySQL) (0) | 2024.02.23 |
[프로그래머스 코딩테스트 연습 SQL - 09] 역순 정렬하기 (MySQL) (0) | 2024.02.23 |