728x90

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

 

프로그래머스

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

programmers.co.kr

문제

USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요.

 

출력

SQL문을 통해서 다음과 같이 출력 되어야 한다.

BOARD_ID WRITER_ID TITLE PRICE STATUS
B0010 keel1990 철제선반5단 10000 판매중
B0009 yawoong67 선반 팝니다 12000 거래완료

 

제한사항에 대해 보고싶으면 눌러주세요

더보기

제한사항

X

풀이방법

1. USED_GOODS_BOARD 테이블에서 참고하기 때문에 FROM 부터 작성했습니다.

FROM USED_GOODS_BOARD

2. CREATED_DATE 가 2022-10-05인 데이터를 조회했습니다.

WHERE CREATED_DATE = "2022-10-05"

3. 게시글 ID기준으로 내림차순 정렬하는 코드를 작성했습니다.

ORDER BY BOARD_ID DESC

4. 마지막으로 STATUS 상태에 따라서 "예약중", "판매완료", "판매중" 을 CASE 문을 쓰면서 SELECT문을 작성했습니다.

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, 
CASE WHEN STATUS='SALE' THEN '판매중'
	WHEN STATUS='DONE' THEN '거래완료'
    ELSE '예약중'
    END AS STATUS

 

코드

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, 
CASE WHEN STATUS='SALE' THEN '판매중'
	WHEN STATUS='DONE' THEN '거래완료'
    ELSE '예약중'
    END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE = "2022-10-05"
ORDER BY BOARD_ID DESC;

 

결론

CASE문을 처음작성하느라 조금 낯설었지만 충분히 해결할 수 있는 문제다.

나머지 SELECT, FROM, WHERE, ORDER BY 모두 데이터베이스 수업시간에 들었던 내용들이라 어려움없이 해결할 수 있었다.