SQL Server2005 ROW_NUMBER() OVER 使用
生活随笔
收集整理的這篇文章主要介紹了
SQL Server2005 ROW_NUMBER() OVER 使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
此函數(shù)是為返回結(jié)果集的行號。
說明:返回結(jié)果集分區(qū)內(nèi)行的序列號,每個(gè)分區(qū)的第一行從 1 開始。
語法:ROW_NUMBER () OVER ( [ <partition_by_clause> ] <order_by_clause> ) 。
備注:ORDER BY 子句可確定在特定分區(qū)中為行分配唯一 ROW_NUMBER 的順序。
參數(shù):<partition_by_clause> :將 FROM 子句生成的結(jié)果集劃入應(yīng)用了 ROW_NUMBER 函數(shù)的分區(qū)。
????? <order_by_clause>:確定將 ROW_NUMBER 值分配給分區(qū)中的行的順序。
返回類型: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 行受影響)
*/
說明:返回結(jié)果集分區(qū)內(nèi)行的序列號,每個(gè)分區(qū)的第一行從 1 開始。
語法:ROW_NUMBER () OVER ( [ <partition_by_clause> ] <order_by_clause> ) 。
備注:ORDER BY 子句可確定在特定分區(qū)中為行分配唯一 ROW_NUMBER 的順序。
參數(shù):<partition_by_clause> :將 FROM 子句生成的結(jié)果集劃入應(yīng)用了 ROW_NUMBER 函數(shù)的分區(qū)。
????? <order_by_clause>:確定將 ROW_NUMBER 值分配給分區(qū)中的行的順序。
返回類型: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 行受影響)
*/
轉(zhuǎn)載于:https://www.cnblogs.com/79039535/archive/2009/08/14/1545840.html
總結(jié)
以上是生活随笔為你收集整理的SQL Server2005 ROW_NUMBER() OVER 使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 军营中,你还好吗?
- 下一篇: linux cmake编译源码,linu