최보름달

[SQL] where절 ROWNUM, TOP 본문

문송한 회사생활/SQL 공부

[SQL] where절 ROWNUM, TOP

PieMoon 2020. 8. 8. 15:35

ROWNUM

(오라클)원하는 행 만큼 가져오고 싶을 때 where 절에서 행의 개수를 제한하는 목적으로 사용할 수 있다. 

 

한 건의 행만 가져오고 싶을 때 

-- 다 똑같은 결과가 나온다. 

SELECT PLAYER_NAME 
FROM   PLAYER
WHERE  ROWNUM = 1;

SELECT PLAYER_NAME 
FROM   PLAYER
WHERE  ROWNUM <= 1;

SELECT PLAYER_NAME 
FROM   PLAYER
WHERE  ROWNUM < 2;

 

두 건 이상의 N행을 가져오고 싶을 때

SELECT PLAYER_NAME 
FROM   PLAYER
WHERE  ROWNUM <= N;

SELECT PLAYER_NAME 
FROM   PLAYER
WHERE  ROWNUM < N + 1;

 

추가적으로 테이블 내의 고유한 키나 인덱스 값을 만들 수도 있다. 

UPDATE MY_TABLE
SER    COLUMN1 = ROWNUM ; 

 

 

TOP

(SQL Server) 출력되는 행의 수를 제한한다. 

(where 절에 오는 함수가 아닌데 ROWNUM과 같은 함수라서 여기에 넣은듯...)

TOP (expression) [percent] [with ties]

expression : 반환할 행의 수를 지정한다. 

percent : 쿼리 결과 집합에서 처음 expression%의 행만 반환된다. 

with ties : ORDER BY 절이 지정된 경우에만 사용할 수 있다. TOP N(percent)의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정할 수 있다.

 

한 행만 가져오고 싶을 때

SELECT TOP(1) PLAYER_NAME 
FROM   PLAYER ; 

 

두 건 이상의 N 행을 가져오고 싶을 때 

SELECT TOP(N) PLAYER_NAME 
FROM   PLAYER ; 

 

 

 

 

kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.