몸과 마음이 건전한 SW 개발자

[SQL-STRING, DATE] 프로그래머스 Lv. 2 조건에 부합하는 중고거래 상태 조회하기 [다시 풀어 보기] 본문

SQL/다시 풀어 보기

[SQL-STRING, DATE] 프로그래머스 Lv. 2 조건에 부합하는 중고거래 상태 조회하기 [다시 풀어 보기]

스위태니 2024. 12. 20. 20:29

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

정답 코드

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

풀이 과정

 

  1. 조건 필터링 (WHERE):
    • CREATED_DATE가 2022-10-05인 게시글만 선택한다.
  2. 거래 상태 변환 (CASE):
    • STATUS 값에 따라 거래 상태를 '판매중', '예약중', '거래완료'로 변환한다.
    • 변환된 상태는 별칭(STATUS)으로 출력된다.
  3. 정렬 (ORDER BY):
    • 게시글 ID(BOARD_ID)를 기준으로 내림차순 정렬하여 최신 게시글이 먼저 출력되도록 한다.
  4. 출력 컬럼:
    • 필요한 데이터(BOARD_ID, WRITER_ID, TITLE, PRICE, 변환된 STATUS)만 선택하여 반환한다.

 

느낀점

  • CASE를 떠올렸지만 WHEN이랑 THEN을 사용한다는 것은 까먹은지 오래 되었다.