SQL Server2005 ROW_NUMBER() OVER 使用
生活随笔
收集整理的這篇文章主要介紹了
SQL Server2005 ROW_NUMBER() OVER 使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
此函數是為返回結果集的行號。
說明:返回結果集分區內行的序列號,每個分區的第一行從 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 值分配給分區中的行的順序。
返回類型:bigint 。
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
/*
FirstName? LastName??? Row Number? SalesYTD????? PostalCode
---------? ----------? ----------? ------------? ----------------------------
Shelley??? Dyck??????? 1?????????? 5200475.2313? 98027
Gail?????? Erickson??? 2?????????? 5015682.3752? 98055
Maciej???? Dusza?????? 3?????????? 4557045.0459? 98027
Linda????? Ecoffey???? 4?????????? 3857163.6332? 98027
Mark?????? Erickson??? 5?????????? 3827950.238?? 98055
Terry????? Eminhizer?? 6?????????? 3587378.4257? 98055
Michael??? Emanuel???? 7?????????? 3189356.2465? 98055
Jauna????? Elson?????? 8?????????? 3018725.4858? 98055
Carol????? Elliott???? 9?????????? 2811012.7151? 98027
Janeth???? Esteves???? 10????????? 2241204.0424? 98055
Martha???? Espinoza??? 11????????? 1931620.1835? 98055
Carla????? Eldridge??? 12????????? 1764938.9859? 98027
Twanna???? Evans?????? 13????????? 1758385.926?? 98055
(13 行受影響)
*/
說明:返回結果集分區內行的序列號,每個分區的第一行從 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 值分配給分區中的行的順序。
返回類型:bigint 。
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
/*
FirstName? LastName??? Row Number? SalesYTD????? PostalCode
---------? ----------? ----------? ------------? ----------------------------
Shelley??? Dyck??????? 1?????????? 5200475.2313? 98027
Gail?????? Erickson??? 2?????????? 5015682.3752? 98055
Maciej???? Dusza?????? 3?????????? 4557045.0459? 98027
Linda????? Ecoffey???? 4?????????? 3857163.6332? 98027
Mark?????? Erickson??? 5?????????? 3827950.238?? 98055
Terry????? Eminhizer?? 6?????????? 3587378.4257? 98055
Michael??? Emanuel???? 7?????????? 3189356.2465? 98055
Jauna????? Elson?????? 8?????????? 3018725.4858? 98055
Carol????? Elliott???? 9?????????? 2811012.7151? 98027
Janeth???? Esteves???? 10????????? 2241204.0424? 98055
Martha???? Espinoza??? 11????????? 1931620.1835? 98055
Carla????? Eldridge??? 12????????? 1764938.9859? 98027
Twanna???? Evans?????? 13????????? 1758385.926?? 98055
(13 行受影響)
*/
轉載于:https://www.cnblogs.com/79039535/archive/2009/08/14/1545840.html
總結
以上是生活随笔為你收集整理的SQL Server2005 ROW_NUMBER() OVER 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 军营中,你还好吗?
- 下一篇: 简述如何书写工程化的简单代码