ORDER BY (Entiteit SQL)
Hiermee geeft u de sorteervolgorde op die wordt gebruikt voor objecten die worden geretourneerd in een SELECT-instructie.
Syntaxis
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
Argumenten
order_by_expression
Elke geldige query-expressie die een eigenschap aangeeft waarop moet worden gesorteerd. U kunt meerdere sorteerexpressies opgeven. De volgorde van de sorteerexpressies in de COMPONENT ORDER BY definieert de organisatie van de gesorteerde resultatenset.
COLLATE {collation_name} Geeft aan dat de ORDER BY-bewerking moet worden uitgevoerd volgens de sortering die is opgegeven in collation_name
. COLLATE is alleen van toepassing op tekenreeksexpressies.
ASC Geeft aan dat de waarden in de opgegeven eigenschap in oplopende volgorde moeten worden gesorteerd, van laagste waarde tot hoogste waarde. Dit is de standaardinstelling.
DESC geeft aan dat de waarden in de opgegeven eigenschap moeten worden gesorteerd in aflopende volgorde, van hoogste waarde naar laagste waarde.
Alleen n
de eerste n
items worden geselecteerd.
SKIP slaat n
de eerste n
items over.
Opmerkingen
De ORDER BY-component wordt logisch toegepast op het resultaat van de SELECT-component. De ORDER BY-component kan verwijzen naar items in de selectielijst met behulp van hun aliassen. De ORDER BY-component kan ook verwijzen naar andere variabelen die momenteel binnen het bereik vallen. Als de SELECT-component echter is opgegeven met een DISTINCT-modifier, kan de ORDER BY-component alleen verwijzen naar aliassen uit de SELECT-component.
SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2
Elke expressie in de ORDER BY-component moet een bepaald type evalueren dat kan worden vergeleken met geordende ongelijkheid (kleiner dan of groter dan, enzovoort). Deze typen zijn over het algemeen scalaire primitieven, zoals getallen, tekenreeksen en datums. RowTypes van vergelijkbare typen zijn ook volgorde vergelijkbaar.
Als uw code een geordende set doorloopt, behalve voor een projectie op het hoogste niveau, blijft de uitvoer niet gegarandeerd behouden.
In het volgende voorbeeld blijft de volgorde gegarandeerd behouden:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
In de volgende query wordt de volgorde van de geneste query genegeerd:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Als u een geordende UNION-, UNION ALL-, EXCEPT- of INTERSECT-bewerking wilt hebben, gebruikt u het volgende patroon:
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
Beperkte trefwoorden
De volgende trefwoorden moeten tussen aanhalingstekens staan wanneer ze worden gebruikt in een ORDER BY
component:
KRUIS
VOLLEDIGE
SLEUTEL
LEFT
VOLGORDE
BUITENSTE
RIGHT
RIJ
WAARDE
Geneste query's bestellen
In Entity Framework kan een geneste expressie overal in de query worden geplaatst; de volgorde van een geneste query blijft niet behouden.
Met de volgende query worden de resultaten gesorteerd op de achternaam:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
In de volgende query wordt de volgorde van de geneste query genegeerd:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Opmerking
De volgende Entiteit SQL-query maakt gebruik van de OPERATOR ORDER BY om de sorteervolgorde op te geven die wordt gebruikt voor objecten die worden geretourneerd in een SELECT-instructie. De query is gebaseerd op het AdventureWorks Sales Model. Voer de volgende stappen uit om deze query te compileren en uit te voeren:
Volg de procedure in Procedure: Voer een query uit die StructureleType-resultaten retourneert.
Geef de volgende query als argument door aan de
ExecuteStructuralTypeQuery
methode:
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice