본문 바로가기
DB/Oracle

[Oracle] SELECT 결과 상위 N개만 검색 / FETCH FIRST N ROWS ONLY

by 키튼햄 2023. 11. 5.

SELECT 구문을 사용한 결과 중 상위 몇개의 데이터만 검색하고 싶을 때(제한된 수의 행을 가져올때)

FECTCH FIRST N ROWS ONLY 구문을 사용한다. 

(N에는 검색하고 싶은 행의 개수가 들어간다.)

 

EX)

[프로그래머스] 59044 - 오랜기간 보호한 동물(1)

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

 

문제) 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

 

작성코드

SELECT I.NAME,
       I.DATETIME
FROM ANIMAL_INS I
LEFT OUTER JOIN ANIMAL_OUTS O
  ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE O.ANIMAL_ID IS NULL
ORDER BY I.DATETIME ASC
FETCH FIRST 3 ROWS ONLY;