Oracle FETCH 함수

1. TOP-N (12c 이전)

SELECT *
FROM ( SELECT prod_id, amount_sold
FROM sales
ORDER BY amount_sold)
WHERE rownum <= 5;

2. FETCH (12c)

SELECT prod_id, amount_sold
FROM sales
ORDER BY amount_sold
FETCH FIRST 5 ROWS ONLY;


응용 case 1. amount_sold 높은 순, 순위 중복 허용

SELECT prod_id, amount_sold
FROM sales
ORDER BY amount_sold DESC
FETCH FIRST 5 ROWS WITH TIES;


응용 case 2. 특정 구간

SELECT prod_id, amount_sold
FROM sales
ORDER BY amount_sold
OFFSET 5
FETCH NEXT 5 ROWS ONLY;


cf. FETCH 함수 SYNTAX

[ OFFSET offset { ROW | ROWS } ]
[ FETCH { FIRST | NEXT }[ { rowcount | percent PERCENT } ] { ROW | ROWS } { ONLY | WITH TIES } ]

편.안.
출처: https://oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중