ORDER BY-Klausel (Transact-SQL)

Aktualisiert: 14. April 2006

Legt die Sortierreihenfolge für Spalten fest, die von einer SELECT-Anweisung zurückgegeben werden. Die ORDER BY-Klausel ist in Sichten, Inlinefunktionen, abgeleiteten Tabellen und Unterabfragen nur dann gültig, wenn auch TOP angegeben wird.

ms188385.note(de-de,SQL.90).gifHinweis:
Wenn ORDER BY in der Definition einer Sicht, einer Inlinefunktion, einer abgeleiteten Tabelle oder Unterabfrage verwendet wird, dient die Klausel lediglich zur Bestimmung der Zeilen, die von der TOP-Klausel zurückgegeben werden. Durch die ORDER BY-Klausel wird keine bestimmte Ergebnisreihenfolge bei der Abfrage dieser Konstrukte sichergestellt, es sei denn, in der Abfrage selbst ist ebenfalls ORDER BY angegeben.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • order_by_expression
    Gibt eine Spalte an, nach der sortiert werden soll. Eine Sortierspalte kann als Name, Spaltenalias oder eine nicht negative ganze Zahl angegeben werden, die die Position des Namens oder Alias in der Auswahlliste darstellt. Eine ganze Zahl kann nicht angegeben werden, wenn order_by_expression in einer Rangfolgefunktion angezeigt wird. Eine Sortierspalte kann einen Ausdruck enthalten. Wenn die Datenbank sich jedoch im SQL Server 2005-Kompatibilitätsmodus (90) befindet, kann der Ausdruck nicht in eine Konstante aufgelöst werden. Spaltennamen und Aliase können durch den Namen der Tabelle oder Sicht qualifiziert werden. In SQL Server 2005 werden qualifizierte Spaltennamen und Aliase in Spalten aufgelöst, die in der FROM-Klausel aufgeführt sind. Wenn order_by_expression nicht qualifiziert wird, muss der Wert unter allen in der SELECT-Anweisung aufgelisteten Spalten eindeutig sein.

    Es können mehrere Sortierspalten angegeben werden. Die Reihenfolge der Sortierspalten in der ORDER BY-Klausel definiert die Anordnung des sortierten Resultsets.

    Die ORDER BY-Klausel kann Elemente enthalten, die nicht in der Auswahlliste angezeigt werden. Wenn jedoch SELECT DISTINCT angegeben wird oder die Anweisung eine GROUP BY-Klausel oder die SELECT-Anweisung einen UNION-Operator enthält, müssen die Sortierspalten in der Auswahlliste angezeigt werden.

    Enthält die SELECT-Anweisung einen UNION-Operator, gilt außerdem, dass als Spaltennamen oder Spaltenaliasnamen die in der ersten Auswahlliste angegebenen Namen verwendet werden müssen.

    ms188385.note(de-de,SQL.90).gifHinweis:
    Spalten vom Typ ntext, text, image oder xml können in einer ORDER BY-Klausel nicht verwendet werden.
  • COLLATE {collation_name}
    Gibt an, dass der ORDER BY-Vorgang gemäß der in collation_name angegebenen Sortierung und nicht gemäß der in der Tabelle oder Sicht definierten Sortierung der Spalte ausgeführt werden soll. collation_name kann entweder der Name einer Windows-Sortierreihenfolge oder ein SQL-Sortierungsname sein. Weitere Informationen finden Sie unter Sortierungseinstellungen im Setup-Programm und Verwenden von SQL-Sortierungen. COLLATE ist nur für Spalten der Datentypen char, varchar, nchar und nvarchar anwendbar.
  • ASC
    Gibt an, dass die Werte in der angegebenen Spalte in aufsteigender Reihenfolge vom niedrigsten bis zum höchsten Wert sortiert werden sollen.
  • DESC
    Gibt an, dass die Werte in der angegebenen Spalte in absteigender Reihenfolge vom höchsten bis zum niedrigsten Wert sortiert werden sollen.

Hinweise

NULL-Werte werden als die niedrigsten Werte behandelt, die möglich sind.

Für die Anzahl der Elemente in der ORDER BY-Klausel gibt es keine Beschränkung. Allerdings ist die Zeilengröße der für Sortiervorgänge benötigten temporären Arbeitstabellen auf 8.060 Byte beschränkt. Hierdurch wird die Gesamtgröße der in einer ORDER BY-Klausel angegebenen Spalten beschränkt.

Wenn sie zusammen mit einer SELECT...INTO-Anweisung zum Einfügen von Zeilen aus einer anderen Quelle verwendet wird, garantiert die ORDER BY-Klausel nicht, dass die Zeilen in der angegebenen Reihenfolge eingefügt werden.

Siehe auch

Verweis

Ausdrücke (Transact-SQL)
SELECT (Transact-SQL)
FROM (Transact-SQL)

Andere Ressourcen

Sortieren von Zeilen mit ORDER BY

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt:
  • Eine Erläuterung des Zwecks von ORDER BY in der Definition einer Inlinefunktion, einer abgeleiteten Tabelle oder Unterabfrage wurde hinzugefügt.

05. Dezember 2005

Neuer Inhalt:
  • Eine Erläuterung des Zwecks der ORDER BY-Klausel in einer Sichtdefinition wurde hinzugefügt.