DB

[프로그래머스] 조건에 부합하는 중고거래 상태 조회하기(MySQL)

staktree 2023. 11. 29. 18:31

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

 

프로그래머스

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

programmers.co.kr

 

문제 : 

 

 

예시 :

 

 

해결 : 

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE
WHEN STATUS = 'SALE' THEN '판매중'
WHEN STATUS = 'RESERVED' THEN '예약중' 
WHEN STATUS = 'DONE' THEN '거래완료' END AS STATUS
FROM USED_GOODS_BOARD
WHERE YEAR(CREATED_DATE) = 2022 AND MONTH(CREATED_DATE) = 10 AND DAY(CREATED_DATE) = 5
ORDER BY BOARD_ID DESC

 

판매 상태에 따라 다른 결과를 출력해야하기 때문에 CASE문을 사용했습니다. 

날짜의 경우 년도, 월, 일을 따로 따로 조건에 맞게 검색하도록 하였습니다.  아래와 같이 작성하여도 무방합니다.

 

WHERE CREATED_DATE = '2022-10-05'

 

게시글 ID를 기준으로 내림차순하기 위해 DESC로 정렬했습니다. 

 

정보 :

1. CASE 문 사용법 

CASE WHEN A = B THEN C 
WHEN A = D THEN E 
ELSE F
END AS INFO

 

각 케이스에 대해 'CASE WHEN 조건 THEN 결과' 형식으로 사용합니다.

AS 태그를 사용하여 컬럼명을 설정할 수 있습니다. 

 

2. YEAR(), MONTH(), DAY()

DATE형 자료에 대해 각각 년도, 월, 일을 따로 얻어낼 수 있는 함수입니다.