Freigeben über


Rangfolgefunktionen (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Rangfolgefunktionen geben für jede Partitionszeile einen Rangfolgenwert zurück. Je nach verwendeter Funktion empfangen einige Zeilen möglicherweise dieselben Werte wie andere Zeilen. Rangfolgefunktionen sind nicht deterministisch.

Transact-SQL stellt folgende Rangfolgefunktionen bereit:

Beispiele

Im folgenden Beispiel werden die in derselben Abfrage verwendeten vier Rangfolgefunktionen veranschaulicht. Funktionsspezifische Beispiele finden Sie unter der jeweiligen Rangfolgefunktion.

USE AdventureWorks2022;  
GO  
SELECT p.FirstName, p.LastName  
    ,ROW_NUMBER() OVER (ORDER BY a.PostalCode) AS "Row Number"  
    ,RANK() OVER (ORDER BY a.PostalCode) AS Rank  
    ,DENSE_RANK() OVER (ORDER BY a.PostalCode) AS "Dense Rank"  
    ,NTILE(4) OVER (ORDER BY a.PostalCode) AS Quartile  
    ,s.SalesYTD  
    ,a.PostalCode  
FROM Sales.SalesPerson AS s   
    INNER JOIN Person.Person AS p   
        ON s.BusinessEntityID = p.BusinessEntityID  
    INNER JOIN Person.Address AS a   
        ON a.AddressID = p.BusinessEntityID  
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0;  

Hier sehen Sie das Ergebnis.

FirstName LastName Zeilennummer Rank Dichter Rang Quartile SalesYTD PostalCode
Michael Blythe 1 1 1 1 4557045,0459 98027
Linda Mitchell 2 1 1 1 5200475,2313 98027
Jillian Carson 3 1 1 1 3857163,6332 98027
Garrett Vargas 4 1 1 1 1764938,9859 98027
Tsvi Reiter 5 1 1 2 2811012,7151 98027
Shu Ito 6 6 2 2 3018725,4858 98055
José Saraiva 7 6 2 2 3189356,2465 98055
David Campbell 8 6 2 3 3587378,4257 98055
Tete Mensa-Annan 9 6 2 3 1931620,1835 98055
Lynn Tsoflias 10 6 2 3 1758385,926 98055
Rachel Valdez 11 6 2 4 2241204,0424 98055
Jae Pak 12 6 2 4 5015682,3752 98055
Ranjit Varkey Chudukatil 13 6 2 4 3827950,238 98055

Weitere Informationen

Integrierte Funktionen (Transact-SQL)
OVER-Klausel (Transact-SQL)