中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MSSQLServer中怎么實現查詢分頁

發布時間:2021-07-26 16:35:58 來源:億速云 閱讀:107 作者:Leah 欄目:數據庫

本篇文章給大家分享的是有關MSSQLServer中怎么實現查詢分頁,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

select top 10 * from yc_module where (block_id not in (select top 0 block_id from yc_module order by block_id)) order by block_id;

分頁方案一:(利用Not In和SELECT TOP分頁)
語句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
          (SELECT TOP 20 id
         FROM TestTable
         ORDER BY id))
ORDER BY ID

SELECT TOP 頁大小 *
FROM TestTable
WHERE (ID NOT IN
          (SELECT TOP 頁大小*頁數 id
         FROM 表
         ORDER BY id))
ORDER BY ID

-------------------------------------

分頁方案二:(利用ID大于多少和SELECT TOP分頁)
語句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
          (SELECT MAX(id)
         FROM (SELECT TOP 20 id
                 FROM TestTable
                 ORDER BY id) AS T))
ORDER BY ID

SELECT TOP 頁大小 *
FROM TestTable
WHERE (ID >
          (SELECT MAX(id)
         FROM (SELECT TOP 頁大小*頁數 id
                 FROM 表
                 ORDER BY id) AS T))
ORDER BY ID

-------------------------------------

分頁方案三:(利用SQL的游標存儲過程分頁)
create  procedure XiaoZhengGe
@sqlstr nvarchar(4000), --查詢字符串
@currentpage int, --第N頁
@pagesize int --每頁行數
as
set nocount on
declare @P1 int, --P1是游標的id
 @rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 總頁數--,@rowcount as 總行數,@currentpage as 當前頁 
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off

其它的方案:如果沒有主鍵,可以用臨時表,也可以用方案三做,但是效率會低。
建議優化的時候,加上主鍵和索引,查詢效率會提高。

通過SQL 查詢分析器,顯示比較:我的結論是:
分頁方案二:(利用ID大于多少和SELECT TOP分頁)效率最高,需要拼接SQL語句
分頁方案一:(利用Not In和SELECT TOP分頁)   效率次之,需要拼接SQL語句
分頁方案三:(利用SQL的游標存儲過程分頁)    效率最差,但是最為通用

以上就是MSSQLServer中怎么實現查詢分頁,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桃源县| 苏尼特左旗| 新野县| 司法| 银川市| 博客| 盐边县| 德钦县| 留坝县| 安福县| 新源县| 广饶县| 都江堰市| 锡林郭勒盟| 乡城县| 日土县| 微山县| 宝兴县| 阿勒泰市| 庆云县| 郧西县| 柳州市| 合川市| 白朗县| 象州县| 揭西县| 高青县| 内丘县| 景东| 临沧市| 灵武市| 察雅县| 攀枝花市| 贞丰县| 德昌县| 理塘县| 兴宁市| 嘉善县| 长顺县| 喀什市| 原阳县|