Aracılığıyla paylaş


ROW_NUMBER (Transact-SQL)

Bir bölüm içinde bir satırın ilk satırda her bölüm için 1 başlayarak bir sonuç kümesi, sıralı sayıyı verir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • <partition_by_clause>
    Yapımcı sonuç kümesi ayıran from yan tümce tümcesine bölümleri işlev Satır_num uygulandığı.BÖLÜM tarafından sözdizimi için bkz: OVER Yan Tümcesi (Transact-SQL).

  • <order_by_clause>
    Bir bölümü bulunan satırlar için Satır_num değer atandığı sırayı belirler.Daha fazla bilgi için, bkz. order by yan tümcesi (Transact-SQL).Bir tamsayı sütun temsil edemez, <order_by_clause> bir sıralama işlevkullanılır.

Dönüş Türleri

bigint

Açıklamalar

order by yan tümce , satırları belirtilen bir bölüm içinde benzersiz kendi Satır_num atanan sırasını belirler.

Örnekler

A.Satış temsilcileri için satır numarasını döndürerek

Aşağıdaki örnek verir ROW_NUMBER Satış temsilcileri için AdventureWorks2008R2 yıl temelinde-için-tarih satış.

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 satır kümesini döndürmeden

Aşağıdaki örnek satır numaralarıyla verir 50 için 60 sırasına dahil OrderDate.

USE AdventureWorks2008R2;
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() bölümü ile kullanma

Aşağıdaki örnekler kullanarak ROW_NUMBER işlev ile PARTITION BY bağımsız değişkeni.

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;