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

歡迎訪問 生活随笔!

生活随笔

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

数据库

Microsoft SQL Server 2005 查询分页

發布時間:2024/4/13 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Microsoft SQL Server 2005 查询分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微軟新的SQL Server 2005新增了數據庫分頁功能,以后再也用寫復雜不靈活而低效率的分頁存儲過程。
新的數據庫分頁功能的核心是一個叫row_number的函數
具體如下:

返回結果集分區內行的序列號,每個分區的第一行從 1 開始。

語法
?
ROW_NUMBER ( )???? OVER ( [ <partition_by_clause> ] <order_by_clause> )

備注
ORDER BY 子句可確定在特定分區中為行分配唯一 ROW_NUMBER 的順序。

參數
<partition_by_clause>

將 FROM 子句生成的結果集劃入應用了 ROW_NUMBER 函數的分區。

<order_by_clause>

確定將 ROW_NUMBER 值分配給分區中的行的順序。有關詳細信息,請參閱 ORDER BY 子句 (Transact-SQL)。

有關詳細信息,請參閱 OVER 子句 (Transact-SQL)。

返回類型
bigint

示例
以下示例將根據年初至今的銷售額,返回 AdventureWorks 中銷售人員的 ROW_NUMBER。

?復制代碼
USE AdventureWorks
GO
SELECT c.FirstName, c.LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s JOIN Person.Contact c on s.SalesPersonID = c.ContactID
JOIN Person.Address a ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0

以下示例將返回行號為 50 到 60(含)的行,并以 OrderDate 排序。

?復制代碼
USE AdventureWorks;
GO
WITH OrderedOrders AS
(SELECT SalesOrderID, OrderDate,
ROW_NUMBER() OVER (order by OrderDate)as RowNumber
FROM Sales.SalesOrderHeader )
SELECT *
FROM OrderedOrders
WHERE RowNumber between 50 and 60;?

==============================
進過我對百萬行數據記錄的分頁測試,效率比以前網上能夠找到的最好的存儲過程(個人意見)稍高。
但是還是比同樣的Oralce的分頁效率低。

轉載于:https://www.cnblogs.com/zhangchenliang/archive/2011/07/12/2104313.html

總結

以上是生活随笔為你收集整理的Microsoft SQL Server 2005 查询分页的全部內容,希望文章能夠幫你解決所遇到的問題。

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