Freigeben über


ORDER BY-Klausel (SQL Server Compact)

Gibt die Sortierreihenfolge für das Resultset an. Die ORDER BY-Klausel ist in Unterabfragen nicht zulässig. Es ist auch möglich, mithilfe der OFFSET-FETCH-Klausel nur ein Fenster oder eine Seite mit Ergebnissen aus dem Resultset abzurufen.

Syntax

[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ] 

<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }    [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY    ]}

Argumente

  • order_by_expression
    Gibt die Spalte an, anhand derer sortiert werden soll. Eine Sortierspalte kann als Name oder als Spaltenalias angegeben werden, der über den Tabellennamen oder einen Ausdruck formuliert werden kann. Es können mehrere Sortierspalten angegeben werden. Die Reihenfolge der Sortierspalten in der ORDER BY-Klausel definiert den Aufbau des sortierten Resultsets.

    Eine ORDER BY-Klausel kann Elemente enthalten, die nicht in der Auswahlliste stehen.

    Hinweis

    Spalten vom Datentyp ntext oder image können nicht in einer ORDER BY-Klausel verwendet werden.

  • ASC
    Gibt an, dass die Werte in der angegebenen Spalte in aufsteigender Reihenfolge (vom kleinsten zum größten 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. NULL-Werte werden als die niedrigsten Werte behandelt, die möglich sind.

  • OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
    Gibt die Anzahl der Zeilen an, die übersprungen werden sollen, bevor Zeilen aus dem Abfrageausdruck zurückgegeben werden. Das Argument der OFFSET-Klausel kann eine ganze Zahl oder ein Ausdruck sein, der größer oder gleich NULL ist. Sie können ROW und ROWS synonym verwenden.

  • FETCH {FIRST|NEXT} <rowcount expression> {ROW|ROWS} ONLY
    Gibt die Anzahl der Zeilen an, die nach der Verarbeitung der OFFSET-Klausel zurückgegeben werden sollen. Das Argument der FETCH-Klausel kann eine ganze Zahl oder ein Ausdruck sein, der größer oder gleich EINS ist. Sie können ROW und ROWS synonym verwenden. In gleicher Weise können FIRST und NEXT synonym verwendet werden.

Hinweise

Eine ORDER BY-Klausel kann beliebig viele Elemente enthalten.

Wenn Sie die ORDER BY-Klausel mit einer UNION-Anweisung verwenden, müssen die Namen der Spalten, nach denen Sie sortieren, mit den Namen oder Aliasnamen der Spalten identisch sein, die Sie in der ersten SELECT-Anweisung angegeben haben. Beispielsweise wird die erste der beiden folgenden SELECT-Anweisungen erfolgreich ausgeführt, während bei der zweiten ein Fehler auftritt.

Diese Anweisung wird erfolgreich ausgeführt, weil col1 zur ersten Tabelle (t1) gehört.

Create t1 (col1 int, col2 int);

Create t2 (col3 int, col4 int);

SELECT * from t1 UNION SELECT * from t2 ORDER BY col1;

Diese Anweisung schlägt fehl, weil col3 nicht zur ersten Tabelle (t1) gehört.

SELECT * from t1 UNION SELECT * from t2 ORDER BY col3;

Beispiel

Im folgenden Beispiel werden die Angestellten entsprechend ihrer Vornamen aufgelistet.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name

Die folgenden Beispiele zeigen die Verwendung der OFFSET-FETCH-Klausel mit ORDER BY, wobei die ersten 10 Zeilen des sortierten Resultsets übersprungen und die verbliebenen Zeilen zurückgegeben werden.

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;

Siehe auch

Verweis

OFFSET-FETCH-Klausel (SQL Server Compact)