(오랜만에 프로그래머스 문제입니다😀!)
LV.3 조건에 부합하는 중고거래 상태 조회하기
문제 )
USED_GOODS_BOARD
테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의게시글 ID
,작성자 ID
,게시글 제목
,가격
,거래상태
를 조회하는 SQL문을 작성해주세요. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력해주시고, 결과는 게시글 ID를 기준으로 내림차순 정렬해주세요.
(자세한 문제내용과 테이블내용은 프로그래머스에 있습니다.)
SELECT BOARD_ID
, WRITER_ID
, TITLE
, PRICE
, CASE WHEN STATUS = 'SALE' THEN '판매중'
WHEN STATUS = 'RESERVED' THEN '예약중'
ELSE '거래완료' END AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC
위 문제의 핵심은 CASE WHEN 또는 IF 문을 이용하여 해당 STATUS를 조건에 맞게 처리하는 것
만약, IF 문 사용시 아래와 같이 중첩하여 써야한다.
SELECT BOARD_ID
, WRITER_ID
, TITLE
, PRICE
, IF (STATUS = 'SALE', "판매중", IF(STATUS = 'RESERVED', "예약중", "거래완료")) AS STATUS
FROM USED_GOODS_BOARD
WHERE CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC