코딩테스트연습/[프로그래머스] Oracle

[프로그래머스] Oracle Lv.1 - 조건에 맞는 도서 리스트 출력하기

_꼬마돌 2023. 8. 24. 18:56
반응형

[프로그래머스] Oracle - 조건에 맞는 도서 리스트 출력하기

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/144853?language=oracle 

 

프로그래머스

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

programmers.co.kr

 

문제

다음은 어느 한 서점에서 판매중인 도서들의 도서 정보(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 - 경기도에 위치한 식품창고 목록 출력하기

 

[프로그래머스] Oracle - 경기도에 위치한 식품창고 목록 출력하기

[프로그래머스] Oracle - 경기도에 위치한 식품창고 목록 출력하기 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/131114?language=oracle 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포

tiny-stone.com

 

소스코드

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;

 

반응형