首先說一下sql server的分頁與mysql的分頁的不同,mysql的分頁直接是用limit (pageindex-1),pagesize就可以完成,但是sql server 並沒有limit關鍵字,只有類似limit的top關鍵字。所以分頁起來比較麻煩。
sql server分頁我所知道的就只有四種:三重迴圈;利用max(主鍵);利用row_number關鍵字,offset/fetch next關鍵字(是通過蒐集網上的其他人的方法總結的,應該目前只有這四種方法的思路,其他方法都是基於此變形的)。
先取前20頁,然後倒序,取倒序後前10條記錄,這樣就能得到分頁所需要的資料,不過順序反了,之後可以將再倒序回來,也可以不再排序了,直接交給前端排序。
還有一種方法也算是屬於這種型別的,這裡就不放**出來了,只講一下思路,就是先查詢出前10條記錄,然後用not in排除了這10條,再查詢。
-- 設定執行時間開始,用來檢視效能的
set statistics time on ;
-- 分頁查詢(通用型)
select *
from (select top pagesize *
from (select top (pageindex*pagesize) *
from student
order by sno asc ) -- 其中裡面這層,必須指定按照公升序排序,省略的話,查詢出的結果是錯誤的。
as temp_sum_student
order by sno desc ) temp_order
order by sno asc
-- 分頁查詢第2頁ÿ
四種方式實現SQLServer 分頁查詢
sqlserver 的資料分頁 假設現在有這樣的一張表 create table test id int primary key not null identity,names varchar 20 然後向裡面插入大約1000條資料,進行分頁測試 假設頁數是10,現在要拿出第5頁的內容,查詢語句如下...
四種方式實現SQLServer 分頁查詢
sqlserver 的資料分頁 自己使用時的心得 select top 10 這個10 位一頁顯示的個數 from nrc news where n id notin 40 是這麼計算出來的 10 5 1 每頁10 條,查第5頁 select top40 n id from nrc news ord...
SQL server分頁的四種方法(算很全面了)
目錄 方法二 利用max 主鍵 方法三 利用row number關鍵字 第四種方法 offset fetch next 2012版本及以上才有 結果及執行時間 總結這篇部落格講的是sql server的分頁方法,用的sql server 2012版本。下面都用pageindex表示頁數,pagesi...