Megosztás a következőn keresztül:


ORDER BY (NoSQL-lekérdezés)

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Az opcionális ORDER BY záradék megadja a lekérdezés által visszaadott eredmények rendezési sorrendjét.

Syntax

ORDER BY <sort_specification>  
<sort_specification> ::= <sort_expression> [, <sort_expression>]  
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]

Argumentumok

Leírás
<sort_specification> Megadja azt a tulajdonságot vagy kifejezést, amelyen rendezni szeretné a lekérdezés eredményhalmazát. A rendezési oszlop megadható névként vagy tulajdonságaliasként. Több tulajdonság is megadható. A tulajdonságneveknek egyedinek kell lenniük. A záradék rendezési ORDER BY tulajdonságainak sorrendje határozza meg a rendezett eredményhalmaz szervezetét. Ez azt jelenti, hogy az eredményhalmazt az első tulajdonság rendezi, majd a rendezett listát a második tulajdonság rendezi, és így tovább. A záradékban ORDER BY hivatkozott tulajdonságneveknek kétértelműség nélkül meg kell felelnie a kiválasztási listában szereplő tulajdonságnak vagy a záradékban megadott gyűjteményben FROM meghatározott tulajdonságnak.
<sort_expression> Egy vagy több tulajdonságot vagy kifejezést határoz meg, amelyek alapján rendezheti a lekérdezés eredményhalmazát.
<scalar_expression> A kiszámítandó értéket képviselő kifejezés.
ASC vagy DESC Megadja, hogy a megadott oszlop értékeit növekvő vagy csökkenő sorrendbe kell rendezni. ASC rendezés a legalacsonyabb értékről a legmagasabb értékre. DESC rendezés a legmagasabb értékről a legalacsonyabb értékre. Ha ez az argumentum nincs megadva, ASC (növekvő) az alapértelmezett rendezési sorrend. null értékeket a rendszer a lehető legalacsonyabb értékként kezeli.

Feljegyzés

További információ a skaláris kifejezésekről: skaláris kifejezések

Példák

Az ebben a szakaszban szereplő példák esetében ez a referenciaelem-készlet használatos. Minden elem tartalmaz egy tulajdonságot first és last altulajdonságokatname.

[
  {
    "name": {
      "first": "Casey",
      "last": "Jensen"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Amari",
      "last": "Rivera"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Kayla",
      "last": "Lewis"
    },
    "team": "Human resources"
  }
]

Ebben az első példában a ORDER BY záradék egy mezőt az alapértelmezett rendezési sorrend szerint, növekvő sorrendben rendez.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last
[
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  }
]

Ebben a következő példában a rendezési sorrend kifejezetten csökkenő sorrendben van megadva.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC
[
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  }
]

Ebben az utolsó példában az elemek két mezővel vannak rendezve, egy adott sorrendben, explicit módon megadott sorrendben. A két vagy több mezőt használó lekérdezésekhez összetett indexre van szükség.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC,
    e.name.first ASC

Megjegyzések

  • Az összes elemet visszaadó ORDER BY lekérdezések, beleértve azokat az elemeket is, amelyekben nincs definiálva az ORDER BY záradék tulajdonsága. Általában nem szabályozható, hogy a különböző undefined típusok milyen sorrendben jelenjenek meg az eredményekben. A nem definiált értékek rendezési sorrendjének szabályozásához rendeljen tetszőleges értéket a undefined tulajdonságokhoz, hogy azok a megadott értékek előtt vagy után rendezhetők legyenek.
  • A ORDER BY záradék megköveteli, hogy az indexelési szabályzat tartalmazza a rendezendő mezők indexét. A lekérdezési futtatókörnyezet támogatja a tulajdonságnév vagy a számított tulajdonságok szerinti rendezést. A futtatókörnyezet több ORDER BY tulajdonságot is támogat. Ha több ORDER BY tulajdonsággal rendelkező lekérdezést szeretne futtatni, adjon meg egy összetett indexet a rendezendő mezőkön.
  • Ha a rendezendő tulajdonságok egyes elemekhez tartozhatnak undefined , és le szeretné őket kérni egy ORDER BY lekérdezésben, akkor ezt az elérési utat explicit módon be kell foglalnia az indexbe. Az alapértelmezett indexelési szabályzat nem teszi lehetővé a rendezési tulajdonságot undefinedtartalmazó elemek beolvasását.