Udostępnij za pośrednictwem


RANGA języka Transact-SQL)

Zwraca pozycję każdy wiersz w partycji zestaw wyników.Pozycja wiersza jest jeden plus liczba rangę dostarczanych przed wierszem danego.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • < partition_by_clause >
    Dzieli zestaw wyników produkowanych przez FROM klauzula do partycji stosowane jest pozycja funkcja .Zobacz składnię PARTYCJI przez Klauzula OVER (Transact-SQL).

  • < order_by_clause >
    Określa kolejność stosowania RANGI wartości do wierszy w partycji.Aby uzyskać więcej informacji, zobacz Klauzula ORDER BY (Transact-SQL).Liczba całkowita nie może reprezentować kolumna po <order_by_clause> używane w rankingu funkcja.

Zwracane typy

bigint

Uwagi

Jeśli dwa lub więcej wierszy powiązanie funkcji pozycja, poszczególnych wierszy wiązanej otrzymuje tę samą rangę.Na przykład, jeśli dwóch sprzedawców mają taki sam SalesYTD wartości, zarówno Uszeregowano je jeden.Sprzedawcy z następnego najwyższego SalesYTD klasyfikację numerem 3, ponieważ istnieją dwa wiersze, które są wyżej.W związku z tym, pozycja, funkcja nie zwraca zawsze kolejnych liczb całkowitych.

kolejność sortowania jest używana dla całej kwerendy określa kolejność wyświetlania wierszy w zestaw wyników.

Przykłady

Poniższy przykład klasyfikuje produkty, w zależności od ich ilości w magazynie.zestaw wierszy jest podzielony na partycje przez LocationID i sortowane według Quantity.Należy zauważyć, że ORDER BY w OVERzamówieńklauzula RANK i ORDER BY z SELECTinstrukcja zamówienia, zestaw wyników.

USE AdventureWorks2008R2;
GO
SELECT i.ProductID, p.Name, i.LocationID, i.Quantity
    ,RANK() OVER 
    (PARTITION BY i.LocationID ORDER BY i.Quantity DESC) AS 'RANK'
FROM Production.ProductInventory i 
    INNER JOIN Production.Product p 
        ON i.ProductID = p.ProductID
ORDER BY p.Name;
GO