반응형
#문제요약
- 2022년 10월 5일 게시물 출력
- 거래상태가 SALE이면 판매중, RESERVED이면 예약중, DONE이면 거래완료
- 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태 조회
- 게시글 ID 기준 내림차순 정렬
#MYSQL
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 CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC
#오라클
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 TO_CHAR(CREATED_DATE, 'YYYY-MM-DD') = '2022-10-05'
ORDER BY BOARD_ID DESC
#새롭게 알게 된 점
DATE형('YYYY-MM-DD HH24:MI:SS')의 특정 날짜를 조회할 때
MYSQL은 CREATE_DATE = 'YYYY-MM-DD'로 부분 조회가 가능한 반면,
ORA-01861:literal does not match format string
ORACLE은 다음과 같은 에러가 난다.
즉, 오라클에서는 내가 비교하고 싶은 문자열로 DATE형을 변환해줘야 한다.
#DATE형 -> String형
TO_CHAR(DATE컬럼명, 'YYYY-MM-DD')
#String형 -> DATE형
TO_DATE(String컬럼명, 'YYYY-MM-DD')
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 [#SQL] (1) | 2024.10.07 |
---|---|
[SELECT] SQL 고득점 키트 문제 풀이 모음 (3) | 2024.05.11 |
[프로그래머스] 상품을 구매한 회원 비율 구하기 [#SQL] (1) | 2024.03.11 |
[프로그래머스] lv2. 땅따먹기 [#DP] (0) | 2024.03.08 |
[프로그래머스] FrontEnd 개발자 찾기 [#SQL] (0) | 2024.03.07 |