ORDER BY Clause (Transact-SQL)

Określa kolejność sortowania na kolumny w instrukcja SELECT.Klauzula ORDER BY jest nieprawidłowa w widoków, funkcji wbudowanych, pochodne tabele i podkwerend, o ile nie określono także TOP.

Uwaga

klauzula ORDER BY jest używany w definicji widoku, funkcja śródwierszowej, tabela pochodnej lub podkwerenda, służy tylko do określenia wierszy zwracanych przez klauzulę TOP.Klauzula ORDER BY nie gwarantuje zamówione wyniki, gdy te elementy są badane, ORDER BY również określono w samej kwerendzie.

Topic link iconKonwencje składni języka Transact-SQL

[ ORDER BY 
    {
    order_by_expression 
  [ COLLATE collation_name ] 
  [ ASC | DESC ] 
    } [ ,...n ] 
] 

Argumenty

  • order_by_expression
    Określa kolumna, w którym do sortowania.Kolumna sortowania może być określony jako nazwę lub alias kolumny lub nieujemną liczbą całkowitą, reprezentującą pozycję nazwy ani aliasu na liście select.Liczba całkowita nie może być określona przy order_by_expression pojawia się w funkcja klasyfikacji. Kolumna sortowania może zawierać wyrażenie, ale, gdy baza danych znajduje się w SQL Server (90) tryb zgodności, wyrażenia nie można rozpoznać stała. kolumna nazw i aliasy mogą zostać zakwalifikowane o nazwie tabela lub widoku.W SQL Server, nazwy kwalifikowanej kolumn i aliasów nie są rozwiązane do kolumn wymienionych w klauzula FROM. Jeśli order_by_expression to nie kwalifikuje, wartość musi być unikatowy wśród wszystkich kolumn na liście w instrukcja SELECT.

    Można określić wiele sortowanie kolumn.Kolejność sortowania kolumn w klauzula ORDER BY definiuje organizacji zestaw wyników posortowane.

    Klauzula ORDER BY może zawierać elementy, które nie są wyświetlane na liście select.Jednak jeśli SELECT DISTINCT zostanie określony, jeżeli instrukcja zawiera klauzulę GROUP BY lub jeśli instrukcja SELECT zawiera operator UNION, sortowanie kolumn muszą pojawiać się na liście select.

    Ponadto jeśli instrukcja SELECT zawiera operator UNION, nazwy kolumn lub aliasy kolumna muszą być określone na pierwszej liście select.

    Uwaga

    ntext, text, image, or xmlcolumns cannot be used in an ORDER BY clause.

  • SORTOWANIE {collation_name}
    Specifies that the ORDER BY operation should be performed according to the collation specified in collation_name, and not according to the collation of the column as defined in the table or view.collation_name can be either a Windows collation name or a SQL collation name.Aby uzyskać więcej informacji zobacz Collation Settings in Setup i Using SQL Server Collations. COLLATE ma zastosowanie tylko do kolumn z char, varchar, nchar, a nvarchar typy danych.

  • ASC
    Określa, że wartości w określonym kolumna powinny być sortowane w kolejności rosnącej lub od wartości najniższej do najwyższej wartości.ASC jest sortowanie domyślne.

  • OPIS
    Określa, że wartości w określonym kolumna powinny być sortowane w kolejności malejącej, od wartości największej do najmniejszej wartości.

Remarks

Wartości Null są traktowane jako najniższych możliwych wartości.

Nie jest ograniczona do liczby elementów w klauzula ORDER BY.Istnieje jednak limit 8,060 bajtów dla rozmiaru wierszy pośrednich worktables niezbędnych dla operacji sortowania.Ogranicza całkowity rozmiar kolumn określonych w klauzula ORDER BY.

Używany wraz z instrukcją SELECT... INTO, aby wstawić wiersze z innego urządzenie źródłowe, klauzula ORDER BY nie gwarantuje wiersze są wstawiane w podanej kolejności.

Przykłady

Następujące przykłady pokazują, kolejność zestaw wyników.

Porządkowanie według numeryczny ProductID Kolumna. Domyślnym jest rosnąco.

USE AdventureWorks
GO
SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID ;

Porządkowanie według numeryczny ProductID kolumna w kolejności malejącej.

SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY ProductID DESC;

Porządkowanie według Name Kolumna. Należy zauważyć, że znaki są sortowane alfabetycznie, nie numerycznie.Oznacza to 10 sortuje przed 2.

SELECT ProductID, Name FROM Production.Product
WHERE Name LIKE 'Lock Washer%'
ORDER BY Name ASC ;

Porządkowanie według dwóch kolumn.Ta kwerenda najpierw sortowane rosnąco według FirstName kolumny, następnie sortuje w kolejności według LastName Kolumna.

SELECT LastName, FirstName FROM Person.Contact
WHERE LastName LIKE 'R%'
ORDER BY FirstName ASC, LastName DESC ;