For 2005 / 2008 / 2008 R2sql
WITH NumberedMyTable AS ( SELECT Id, Value, ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber FROM MyTable ) SELECT Id, Value FROM NumberedMyTable WHERE RowNumber BETWEEN @From AND @To
;WITH cte AS ( SELECT Journals.JournalId, Journals.Year, Journals.Title, ArticleCategories.ItemText, ROW_NUMBER() OVER (ORDER BY Journals.JournalId,ArticleCategories.ItemText) AS RN FROM Journals LEFT OUTER JOIN ArticleCategories ON Journals.ArticleCategoryId = ArticleCategories.ArticleCategoryId ) SELECT JournalId, Year, Title, ItemText FROM cte WHERE RN BETWEEN 11 AND 20
For 2012 this is simplerthis
SELECT Journals.JournalId, Journals.Year, Journals.Title, ArticleCategories.ItemText FROM Journals LEFT OUTER JOIN ArticleCategories ON Journals.ArticleCategoryId = ArticleCategories.ArticleCategoryId ORDER BY Journals.JournalId, ArticleCategories.ItemText OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY
參考地址:
https://stackoverflow.com/questions/758186/how-to-get-n-rows-starting-from-row-m-from-sorted-table-in-t-sql
https://stackoverflow.com/questions/5620758/t-sql-skip-take-stored-procedure/5620802#5620802code