日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

三种SQLServer分页查询语句笔记

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三种SQLServer分页查询语句笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為程序員來說,與數據庫打交道是十分頻繁的分頁查詢是一個開發者必須掌握的基本知識點,目前整理了下面三種SQLServer分頁查詢語句的寫法,僅供參考。

一、Top Not IN 方式(查詢靠前的數據較快)

語法格式:

select?top pageSize 列名 ?from?tablename

select?top?條數?*??from?tablename

where?Id?not?in?(select?top?pageSize*(pageIndex-1) ?Id?from?tablename)

示例:

SELECT TOP 2 ?* FROM Users

WHERE Id NOT IN (SELECT TOP 2

Id FROM Users)

二、ROW_NUMBER()?OVER()方式 ?(查詢靠后的數據速度比上一種較快)

語法格式:

SELECT?*?FROM?(SELECT?*,

ROW_NUMBER()?OVER(Order?by?Id?)?AS?RowNumber?from?tablename )?as?b

where RowNumber?between pageIndex-1*pageSize?and?pageIndex*pageSize

示例:

SELECT* FROM (

SELECT*,ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber FROM Users ) as b

where RowNumber BETWEEN 0 and 3

三、offset?fetch?next方式 (速度優于前兩者,限制Sql2012以上可以使用)

語法格式:

select * from tablename

order by Id offset pageIndex?row fetch next pageSize row only

示例:

select * from Users ? order by Id offset 2 row fetch next 5 row only

四、一個比較好用的分頁存儲過程

create PROCEDURE GetPageData

(

@TableName varchar(30),--表名稱

@IDName varchar(20),--表主鍵名稱

@PageIndex int,--當前頁數

@PageSize int--每頁大小

)

AS

IF @PageIndex > 0

BEGIN

set nocount on

DECLARE @PageLowerBound int,@StartID int,@sql nvarchar(225)

SET @PageLowerBound = @PageSize * (@PageIndex-1)

IF @PageLowerBound<1

SET @PageLowerBound=1

SET ROWCOUNT @PageLowerBound

SET @sql=N'SELECT @StartID = ['+@IDName+'] FROM '+@TableName+' ORDER BY '+@IDName

exec sp_executesql @sql,N'@StartID int output',@StartID output

SET ROWCOUNT 0

SET @sql='select top '+str(@PageSize) +' * from '+@TableName+' where ['+@IDName+']>='+ str(@StartID) +' ORDER BY ['+@IDName+'] '

EXEC(@sql)

set nocount off

END

歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺

閱讀原文

總結

以上是生活随笔為你收集整理的三种SQLServer分页查询语句笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。