프로그래머호이잇

msSql 에서 mySql 에서의 Limit 처럼 사용하는 방법 본문

DB

msSql 에서 mySql 에서의 Limit 처럼 사용하는 방법

호이잇! 2019. 8. 7. 11:46

방안 1.
select top 10 * from tblname
where key not in ( 
    select top 100 key from tblname
);

PK 값과 TOP 을 이용하여 뽑아냄 저 구문은 101~110 Row 가 나올듯

방안 2.
select * from (
    select row_number() over (order by key) as rownum, * from tblname
) tbl1
where tbl1.rownum between 101 and 110;

요거는 Window Function 을 이용하여 Rownum 을 매기고 그 Rownum 을 이용하여 검색하는 방법

방안 3.
select * from tblname
order by key
OFFSET 100 ROWS
FETCH NEXT 10 ROWS ONLY

mssql 2012 버전부터는 OFFSET, FETCH 구문을 이용하여 사용가능 
다만 order by 절과 같이 사용되어야함!!