반응형
[프로그래머스] Oracle - 조건에 맞는 도서 리스트 출력하기
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/144853?language=oracle
문제
다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK) 테이블입니다. BOOK 테이블은 각 도서의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다.
BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.
풀이
출판일의 출력 포맷을 지정해주지 않아서 틀렸다.
그냥 출력하면 시간부분도 같이 나와서 시간 부분은 잘라줘야한다..!
전에도 같은 걸로 틀렸는데 계속 그러네잉
SELECT BOOK_ID, PUBLISHED_DATE
FROM BOOK
WHERE TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021'
AND CATEGORY LIKE '인문'
ORDER BY PUBLISHED_DATE;
TO_CHAR 함수로 PUBLISHED_DATE 열의 출력형식을 지정해줘야 한다!!
WHERE 절에서는 원하는 데이터를 뽑아내기 위해서 TO_CHAR함수를 사용했다.
PULISHED_DATE에서 연도 부분만 필요하기 때문에 YYYY만 뽑아서 그 값이 2021인 행만 가져오도록 했다.
위의 코드의 WHERE절처럼 LIKE 연산자를 사용해도 되지만 명확성을 위해 = 연산자를 사용하는 게 좋다.
LIKE 연산자의 활용 및 = 연산자와 LIKE 연산자의 차이에 대한 내용은 아래 게시물에서 자세히 다뤘다.
2023.08.23 - [코딩테스트연습/[프로그래머스] Oracle] - [프로그래머스] Oracle - 경기도에 위치한 식품창고 목록 출력하기
소스코드
SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATE
FROM BOOK
WHERE TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021'
AND CATEGORY = '인문'
ORDER BY PUBLISHED_DATE;
반응형
'코딩테스트연습 > [프로그래머스] Oracle' 카테고리의 다른 글
[프로그래머스] Oracle Lv.1 - 평균 일일 대여 요금 구하기 (0) | 2023.08.25 |
---|---|
[프로그래머스] Oracle Lv.1 - 모든 레코드 조회하기 (0) | 2023.08.24 |
[프로그래머스] Oracle Lv.1 - 인기있는 아이스크림 (0) | 2023.08.24 |
[프로그래머스] Oracle Lv.1 - 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.08.23 |
[프로그래머스] Oracle Lv.1 - 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.08.23 |