Megosztás:


ORDER BY (Entity SQL)

A SELECT utasításban visszaadott objektumokhoz használt rendezési sorrendet adja meg.

Szemantika

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

Érvek

order_by_expression Bármely érvényes lekérdezési kifejezés, amely megadja a rendezendő tulajdonságot. Több rendezési kifejezés is megadható. Az ORDER BY záradék rendezési kifejezéseinek sorrendje határozza meg a rendezett eredményhalmaz szervezetét.

COLLATE {collation_name} Azt határozza meg, hogy az ORDER BY műveletet a megadott collation_namerendezésnek megfelelően kell végrehajtani. A COLLATE csak sztringkifejezésekre alkalmazható.

Az ASC azt határozza meg, hogy a megadott tulajdonság értékeit növekvő sorrendbe kell rendezni, a legalacsonyabbtól a legmagasabb értékig. Ez az alapértelmezett érték.

A DESC azt határozza meg, hogy a megadott tulajdonság értékeit csökkenő sorrendbe kell rendezni, a legmagasabbtól a legalacsonyabb értékig.

CSAK n az első n elemek lesznek kijelölve.

A SKIP n kihagyja az első n elemeket.

Megjegyzések

Az ORDER BY záradék logikailag alkalmazható a SELECT záradék eredményére. Az ORDER BY záradék aliasok használatával hivatkozhat a kiválasztási lista elemeire. Az ORDER BY záradék hivatkozhat a jelenleg hatókörben lévő más változókra is. Ha azonban a SELECT záradék egy DISTINCT módosítóval lett megadva, az ORDER BY záradék csak a SELECT záradék aliasaira hivatkozhat.

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

Az ORDER BY záradék minden kifejezésének olyan típusúnak kell lennie, amely összehasonlítható rendezett egyenlőtlenség esetén (kisebb vagy nagyobb, mint stb.). Ezek a típusok általában skaláris primitívek, például számok, sztringek és dátumok. Az összehasonlítható típusok sortípusai szintén hasonlóak.

Ha a kód egy rendezett halmazon halad át, a legfelső szintű vetítés kivételével, a kimenet nem garantáltan megőrzi a sorrendjét.

A következő mintában a sorrend garantáltan megmarad:

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

A következő lekérdezésben a beágyazott lekérdezés sorrendje figyelmen kívül lesz hagyva:

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

Rendezett UNION, UNION ALL, EXCEPT vagy INTERSECT művelethez használja a következő mintát:

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

Korlátozott kulcsszavak

A következő kulcsszavakat idézőjelek közé kell foglalni, ha egy ORDER BY záradékban használják:

  • KERESZT

  • TELJES

  • KULCS

  • BALRA

  • MEGRENDELÉS

  • KÜLSŐ

  • jobb / helyes / jog

  • SOR

  • ÉRTÉK

Beágyazott lekérdezések rendezése

Az Entity Frameworkben egy beágyazott kifejezés bárhol elhelyezhető a lekérdezésben; a beágyazott lekérdezések sorrendje nem marad meg.

A következő lekérdezés a vezetéknév alapján rendezi az eredményeket:

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

A következő lekérdezésben a beágyazott lekérdezés sorrendje figyelmen kívül lesz hagyva:

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

példa

Az alábbi Entity SQL-lekérdezés az ORDER BY operátorral adja meg a SELECT utasításban visszaadott objektumokhoz használt rendezési sorrendet. A lekérdezés az AdventureWorks értékesítési modellen alapul. A lekérdezés fordításához és futtatásához kövesse az alábbi lépéseket:

  1. Kövesse a How to: Execute a Query that Returns StructuralType Results (Szerkezeti típus eredményeinek visszaadása) című témakör lépéseit.

  2. Adja át a következő lekérdezést argumentumként a ExecuteStructuralTypeQuery metódusnak:

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

Lásd még