_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈 |
FrontPage › OffsetAndFetch
|
|
그뎌 생겼다. 다음의 예는 처음 10개의 row는 결과에 포함하지 않고, 11~ 15까지 5개 Row를 리턴한다.
select productid, name from adventureworks.production.product order by name offset 10 rows fetch next 5 rows only 즉, 다음의 예와 결과가 같다.
select productid, name from ( select row_number() over(order by name) as rowid, productid, name from adventureworks.production.product ) x where rowid between 11 and 15 order by rowid 처음 5개 row를 가져와라.
select productid, name from adventureworks.production.product order by name --offset 10 rows fetch first 5 rows only 이런식으로 변수사용도 가능하다.
use AdventureWorks go declare @numberofrows int = 10 -- number of rows you want on a page declare @desiredpagenumber int = 5 -- page number select * from( select rownum = row_number() over (order by employeeid), * from humanresources.employee ) as a where rownum > (@numberofrows * (@desiredpagenumber - 1)) and rownum <= (@numberofrows * (@desiredpagenumber - 1)) + @numberofrows order by employeeid select * from humanresources.employee order by employeeid offset (@numberofrows * (@desiredpagenumber - 1)) rows fetch next @numberofrows rows only;
|
고통을 겪고 나면 인생과 친구와 자신을 재발견하는 행복이 다가온다. (해럴드 블룸필드) |