with temptb as
(select row_number() over (order by id) as rowid,* from pagecut)
select * from temptb where rowid between 2*50 and 2*50 +50
這是乙個資料分頁方法,從sql2005起就支援了
這裡要記住一點的是with temptb as 這個方法可以對查詢出來的結果作為一張新錶再次查詢
這個在某些時候很有用
edit:2010.03.18
alter procedure [dbo].[spcheckmainsubject]
@pagesize int,
@pageindex int
asbegin
with #temp as
(select top(@pageindex*@pagesize) row_number() over (order by id desc) as rowid,* from article
)select * from #temp where rowid between @pagesize*(@pageindex-1) and @pagesize*@pageindex
end加上乙個top的話,查詢更加的快,一次性十萬條都很快,比起單獨用top來控制更有效
SQL分頁語句
這個分頁方法 sql分頁語句 本人對原作者的方案二做了小小的改動 原語句 select top 頁大小 from table1 where id select isnull max id 0 from select top 頁大小 頁數 1 id from table1 order by id a ...
SQL分頁語句
有關分頁 sql 的資料很多,有的使用儲存過程,有的使用游標。本人不喜歡使用游標,我覺得它耗資 效率低 使用儲存過程是個不錯的選擇,因為儲存過程是經過預編譯的,執行效率高,也更靈活。先看看單條 sql 語句的分頁 sql 吧。方法1 適用於 sql server 2000 2005 select t...
SQL分頁語句
方法1 適用於 sql server 2000 2005 select top頁大小 from table1 where id notin select top頁大小 頁數 1 id from table1 order byid order byid 方法2 適用於 sql server 2000 ...