ORDER BY (Entity SQL)ORDER BY (Entity SQL)

Legt die Sortierreihenfolge für Objekte fest, die von einer SELECT-Anweisung zurückgegeben werden.Specifies the sort order used on objects returned in a SELECT statement.

SyntaxSyntax

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

ArgumenteArguments

order_by_expression
Ein gültiger Abfrageausdruck, der eine Eigenschaft angibt, nach der sortiert werden soll.Any valid query expression specifying a property on which to sort. Es können mehrere Sortierausdrücke angegeben werden.Multiple sort expressions can be specified. Die Reihenfolge der Sortierausdrücke in der ORDER BY-Klausel definiert den Aufbau des sortierten Resultsets.The sequence of the sort expressions in the ORDER BY clause defines the organization of the sorted result set.

COLLATE {collation_name}COLLATE {collation_name}
Gibt an, dass die ORDER BY-Operation nach der in collation_nameangegebenen Sortierreihenfolge ausgeführt werden soll.Specifies that the ORDER BY operation should be performed according to the collation specified in collation_name. COLLATE ist nur für Zeichenfolgenausdrücke anwendbar.COLLATE is applicable only for string expressions.

ASCASC
Gibt an, dass die Werte der angegebenen Eigenschaft in aufsteigender Reihenfolge (vom kleinsten zum größten Wert) sortiert werden sollen.Specifies that the values in the specified property should be sorted in ascending order, from lowest value to highest value. Dies ist die Standardoption.This is the default.

DESCDESC
Gibt an, dass die Werte der angegebenen Eigenschaft in absteigender Reihenfolge (vom größten zum kleinsten Wert) sortiert werden sollen.Specifies that the values in the specified property should be sorted in descending order, from highest value to lowest value.

LIMIT nLIMIT n
Nur die ersten n -Elemente werden ausgewählt.Only the first n items will be selected.

SKIP nSKIP n
Überspringt die ersten n -Elemente.Skips the first n items.

BemerkungenRemarks

Die ORDER BY-Klausel wird logisch auf das Ergebnis der SELECT-Klausel angewendet.The ORDER BY clause is logically applied to the result of the SELECT clause. In der ORDER BY-Klausel kann auf Elemente in der Auswahlliste verwiesen werden, indem deren Aliase verwendet werden.The ORDER BY clause can reference items in the select list by using their aliases. Die ORDER BY-Klausel kann auch auf andere Variablen verweisen, die sich aktuell im Gültigkeitsbereich befinden.The ORDER BY clause can also reference other variables that are currently in-scope. Wenn die SELECT-Klausel jedoch mit einem DISTINCT-Modifizierer angegeben wurde, kann von der ORDER BY-Klausel nur auf Aliase der SELECT-Klausel verwiesen werden.However, if the SELECT clause has been specified with a DISTINCT modifier, the ORDER BY clause can only reference aliases from the SELECT clause.

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

Jeder Ausdruck in der ORDER BY-Klausel muss zu einem Typ ausgewertet werden, der bzgl. geordneter Ungleichheit ("kleiner als", "größer als" usw.) verglichen werden kann.Each expression in the ORDER BY clause must evaluate to some type that can be compared for ordered inequality (less than or greater than, and so on). Bei diesen Typen handelt es sich im Allgemeinen um skalare primitive Typen wie Zahlen, Zeichenfolgen und Datumsangaben.These types are generally scalar primitives such as numbers, strings, and dates. "RowTypes" vergleichbarer Typen sind ebenfalls in der Reihenfolge vergleichbar.RowTypes of comparable types are also order comparable.

Wenn Code eine geordnete Menge durchläuft, wird, anders als bei einer Projektion in der obersten Ebene, die Reihenfolge bei der Ausgabe möglicherweise nicht erhalten.If your code iterates over an ordered set, other than for a top-level projection, the output is not guaranteed to have its order preserved.

In der folgenden Stichprobe wird die Reihenfolge garantiert beibehalten:In the following sample, order is guaranteed to be preserved:

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

In der folgenden Abfrage wird die Reihenfolge der verschachtelten Abfrage ignoriert:In the following query, ordering of the nested query is ignored:

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

Verwenden Sie folgendes Muster, um eine geordnete UNION, UNION ALL, EXCEPT oder INTERSECT-Operation durchzuführen:To have an ordered UNION, UNION ALL, EXCEPT, or INTERSECT operation, use the following pattern:

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

Eingeschränkte SchlüsselwörterRestricted keywords

Die folgenden Schlüsselwörter müssen bei der Verwendung in einer ORDER BY -Klausel in Anführungszeichen gesetzt werden:The following keywords must be enclosed in quotation marks when used in an ORDER BY clause:

  • CROSSCROSS

  • FULLFULL

  • KEYKEY

  • LEFTLEFT

  • ORDERORDER

  • OUTEROUTER

  • RIGHTRIGHT

  • ROWROW

  • VALUEVALUE

Reihenfolge geschachtelter AbfragenOrdering Nested Queries

In Entity Framework kann ein geschachtelter Ausdruck an jeder Stelle in der Abfrage verwendet werden. Die Reihenfolge einer geschachtelten Abfrage wird nicht beibehalten.In the Entity Framework, a nested expression can be placed anywhere in the query; the order of a nested query is not preserved.

Die folgende Abfrage ordnet die Ergebnisse nach dem Nachnamen an:The following query will order the results by the last name:

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

In der folgenden Abfrage wird die Reihenfolge der verschachtelten Abfrage ignoriert:In the following query, ordering of the nested query is ignored:

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

BeispielExample

In der folgenden Entity SQLEntity SQL -Abfrage wird der ORDER BY-Operator verwendet, um die für von der SELECT-Anweisung zurückgegebene Objekte zu verwendende Sortierreihenfolge anzugeben.The following Entity SQLEntity SQL query uses the ORDER BY operator to specify the sort order used on objects returned in a SELECT statement. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell.The query is based on the AdventureWorks Sales Model. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:To compile and run this query, follow these steps:

  1. Verwenden Sie das Verfahren unter How to: Execute a Query that Returns StructuralType Results.Follow the procedure in How to: Execute a Query that Returns StructuralType Results.

  2. Übergeben Sie die folgende Abfrage als Argument an die ExecuteStructuralTypeQuery -Methode:Pass the following query as an argument to the ExecuteStructuralTypeQuery method:

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

Weitere InformationenSee also