방법1:
select
top
10 *
from
tblname
where
id
not
in
(
select
top
100 id
from
tblname
);
방법2:
select
*
from
(
select
row_number() over (
order
by
id)
as
rownum, *
from
tblname
) t1
where
t1.rownum
between
101
and
110;
방법3:
SQL Server 2012의 새로운 기능인 OFFSET은 지정한 행의 수만큼 건너 뛴 후에 출력하는 기능을 한다.
ex)
SELECT userID, name, birthYear FROM userTbl
ORDER BY birthYear
OFFSET 4 ROWS;
전체 10명인데 그 중에서 4명을 건너 뛰고 5번째 행부터 출력되었다.
이는 나이가 어린 6명을 출력하는데 사용할 수 있다.
주의할 점은 OFFSET을 사용하려면 ORDER BY 문이 함께 나와야 한다는 점이다.
FETCH NEXT는 출력될 행의 수를 지정할 수 있다.
SELECT userID, name, birthYear FROM userTBL
ORDER BY birthYear
OFFSET 4 ROWS
FETCH NEXT 3 ROWS ONLY;
FETCH NEXT에 3을 지정하면 3행만 출력하게 된다.
지금은 데이터가 적어서 큰 효과가 없지만, 대용량의 데이터에서 특정 열로 지정한 후, 몇번째 행부터
몇 개 행 가져오기를 할 때 유용하게 사용될 수 있다.
'MSSQL' 카테고리의 다른 글
[MSSQL] CEILING / FLOOR / ROUND 절상 / 절삭 / 반올림 (0) | 2016.07.14 |
---|---|
[MSSQL] INNER JOIN / OUTER JOIN 조인 (0) | 2016.07.14 |
[MSSQL] TempDB 관련 (0) | 2016.07.05 |
[MSSQL] 날짜 / 시간 변환 CONVERT / DATEADD / DATEDIFF (0) | 2016.07.04 |
[MSSQL] 기본 포트 1433 변경하기 (0) | 2016.07.04 |