방법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행만 출력하게 된다.
지금은 데이터가 적어서 큰 효과가 없지만, 대용량의 데이터에서 특정 열로 지정한 후, 몇번째 행부터
몇 개 행 가져오기를 할 때 유용하게 사용될 수 있다.
'DB > MSSQL' 카테고리의 다른 글
SCOPE_IDENTITY(), IDENT_CURRENT(), @@IDENTITY : 마지막 insert한 값 select 하기 (0) | 2020.04.22 |
---|---|
MS-SQL 특정 단어 검색하기 (0) | 2020.04.21 |
MS-SQL 테이블 컬럼 조작(추가,수정,삭제) (0) | 2020.04.14 |
MSSQL 데이터 타입 크기 범위 (0) | 2020.04.14 |
[MSSQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상) (0) | 2020.04.08 |