Aracılığıyla paylaş


ROW_NUMBER (Transact-SQL)

Bir bölüm içerisinde bir sonuç satırı sıralı sayı küme, başlangıç sırasında ilk satırı her bölüm için 1.

Topic link iconTransact-SQL sözdizimi kuralları

ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )

Bağımsız değişkenler

  • <partition_by_clause>
    Sonuç kümesi tarafından üretilen böler GELEN yan tümce ROW_NUMBER işlev uygulandığı bölümlere.PARTITION BY sözdizimi için bkz: yan tümce (Transact-SQL).

  • <order_by_clause>
    ROW_NUMBER değeri bölümüne satır atandığı sırayı belirler.Daha fazla bilgi için bkz:ORDER BY yan tümce (Transact-SQL).Bir tamsayı sütun temsil olamaz, <order_by_clause> bir sıralama işlev.

Dönüş Türleri

bigint

Remarks

ORDER BY yan tümce, satırları belirtilen bir bölüm içinde benzersiz kendi ROW_NUMBER atanan sırasını belirler.

Örnekler

C.Satır numarası, satış temsilcileri için döndürülüyor

Aşağıdaki örnek verir ROW_NUMBER Satış temsilcileri için AdventureWorks Yıl, tarih satış dayanır.

SELECT FirstName, LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', SalesYTD, PostalCode 

FROM Sales.vSalesPerson

WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;

b.alt küme küme satır kümesini döndürmeden

Aşağıdaki örnekte satır numarası verir... 50 için 60 sırasına dahil 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;

c.ROW_NUMBER() PARTITION ile kullanma

Kullanarak, aşağıdaki örnekte gösterildiği ROW_NUMBER işlev ile PARTITION BY bağımsız değişken.

SELECT FirstName, LastName, ROW_NUMBER() OVER(PARTITION BY PostalCode ORDER BY SalesYTD DESC) AS 'Row Number', SalesYTD, PostalCode 
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;