Freigeben über


ORDER BY (Entity SQL)

Gibt die Sortierreihenfolge an, die für Objekte verwendet wird, die in einer SELECT-Anweisung zurückgegeben werden.

Syntax

[ ORDER BY
   {
      order_by_expression [SKIP n] [LIMIT n]
      [ COLLATE collation_name ]
      [ ASC | DESC ]
   }
   [ ,…n ]
]

Argumente

order_by_expression Ein beliebiger gültiger Abfrageausdruck, der eine Eigenschaft angibt, nach der sortiert werden soll. Es können mehrere Sortierausdrücke angegeben werden. Die Abfolge der Sortierausdrücke in der ORDER BY-Klausel definiert die Organisation des sortierten Resultsets.

COLLATE {collation_name} Gibt an, dass der ORDER BY-Vorgang gemäß der angegebenen collation_nameSortierung ausgeführt werden soll. COLLATE gilt nur für Zeichenfolgenausdrücke.

ASC Gibt an, dass die Werte in der angegebenen Eigenschaft in aufsteigender Reihenfolge sortiert werden sollen, von dem niedrigsten Wert zum höchsten Wert. Dies ist die Standardeinstellung.

DESC Gibt an, dass die Werte in der angegebenen Eigenschaft in absteigender Reihenfolge sortiert werden sollen, von dem höchsten Wert bis zum niedrigsten Wert.

Nur n die ersten n Elemente werden ausgewählt.

SKIP n überspringt die ersten n Elemente.

Bemerkungen

Die ORDER BY-Klausel wird logisch auf das Ergebnis der SELECT-Klausel angewendet. Die ORDER BY-Klausel kann mithilfe ihrer Aliase auf Elemente in der Auswahlliste verweisen. Die ORDER BY-Klausel kann auch auf andere Variablen verweisen, die sich derzeit im Gültigkeitsbereich befinden. Wenn die SELECT-Klausel jedoch mit einem DISTINCT-Modifizierer angegeben wurde, kann die ORDER BY-Klausel nur auf Aliase aus der SELECT-Klausel verweisen.

SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2

Jeder Ausdruck in der ORDER BY-Klausel muss einen Bestimmten Typ auswerten, der für sortierte Ungleichheiten verglichen werden kann (kleiner oder größer als usw.). Diese Typen sind im Allgemeinen skalare Grundtypen wie Zahlen, Zeichenfolgen und Datumsangaben. RowTypes vergleichbarer Typen sind ebenfalls vergleichbar.

Wenn ihr Code einen geordneten Satz durchläuft, außer bei einer Projektion auf oberster Ebene, wird die Ausgabe nicht garantiert, dass die Reihenfolge beibehalten wird.

Im folgenden Beispiel wird sichergestellt, dass die Reihenfolge beibehalten wird:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

In der folgenden Abfrage wird die Reihenfolge der geschachtelten Abfrage ignoriert:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

Um einen geordneten UNION-, UNION ALL-, EXCEPT- oder INTERSECT-Vorgang zu verwenden, verwenden Sie das folgende Muster:

SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...

Eingeschränkte Schlüsselwörter

Die folgenden Schlüsselwörter müssen in Anführungszeichen eingeschlossen werden, wenn sie in einer ORDER BY Klausel verwendet werden:

  • KREUZ

  • VOLL

  • SCHLÜSSEL

  • LEFT

  • BESTELLUNG

  • äußere

  • Richtig

  • RUDERN

  • WERT

Sortieren geschachtelter Abfragen

Im Entity Framework kann ein geschachtelter Ausdruck an einer beliebigen Stelle in der Abfrage platziert werden. die Reihenfolge einer geschachtelten Abfrage wird nicht beibehalten.

Die folgende Abfrage sortiert die Ergebnisse nach dem Nachnamen:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

In der folgenden Abfrage wird die Reihenfolge der geschachtelten Abfrage ignoriert:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

Beispiel

Die folgende Entity SQL-Abfrage verwendet den ORDER BY-Operator, um die Sortierreihenfolge anzugeben, die für objekte verwendet wird, die in einer SELECT-Anweisung zurückgegeben werden. Die Abfrage basiert auf dem AdventureWorks Sales Model. Führen Sie die folgenden Schritte aus, um diese Abfrage zu kompilieren und auszuführen:

  1. Gehen Sie wie folgt vor : Ausführen einer Abfrage, die StrukturelleType-Ergebnisse zurückgibt.

  2. Übergeben Sie die folgende Abfrage als Argument an die ExecuteStructuralTypeQuery Methode:

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p ORDER BY p.ListPrice

Siehe auch