Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A SELECT záradék azonosítja a lekérdezési eredményekben visszaadandó mezőket. A záradék ezután a JSON-eredményhalmazba írja be ezeket a mezőket.
Minden lekérdezés egy SELECT kikötésből és opcionálisan FROMWHERE , valamint az ANSI SQL-szabványonkénti záradékokból áll. A záradék forrása FROM általában enumerálva van, és a WHERE záradék szűrőt alkalmaz a forrásra a JSON-elemek egy részhalmazának lekéréséhez.
Szemantika
SELECT <select_specification>
<select_specification> ::=
'*'
| [DISTINCT] <object_property_list>
| [DISTINCT] VALUE <scalar_expression> [[ AS ] value_alias]
<object_property_list> ::=
{ <scalar_expression> [ [ AS ] property_alias ] } [ ,...n ]
Arguments
| Description | |
|---|---|
select_specification |
Az eredményhalmazhoz kijelölendő tulajdonságok vagy értékek. |
* |
Megadja, hogy az értéket módosítás nélkül kell lekérni. Pontosabban, ha a feldolgozott érték egy objektum, a rendszer minden tulajdonságot lekér. |
object_property_list |
Megadja a lekérendő tulajdonságok listáját. Minden visszaadott érték egy objektum, amely a megadott tulajdonságokkal rendelkezik. |
VALUE |
Megadja, hogy a JSON-értéket a teljes JSON-objektum helyett kell lekérni. Ez az argumentum a property_list> ellentétben <nem csomagolja be a tervezett értéket egy objektumba. |
DISTINCT |
Megadja, hogy a tervezett tulajdonságok duplikált példányait el kell távolítani. |
scalar_expression |
A kiszámítandó értéket képviselő kifejezés. |
Visszatérési típusok
A megadott módon adja vissza a tervezett mezőket vagy értékeket.
Példák
Ez a szakasz példákat tartalmaz a lekérdezési nyelv szerkezetének használatára.
Statikus sztringértékek kiválasztása
Ebben a példában két statikus sztringérték, és egy tömböt ad vissza egyetlen, mindkét értéket tartalmazó objektummal. Mivel az értékek névtelenek, a rendszer szekvenciálisan generált számot használ az egyenértékű JSON-mező elnevezéséhez.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Projektmezők
Ebben a példában a JSON-vetítés a kapott JSON-objektum pontos szerkezetének és mezőneveinek finomhangolására szolgál. Itt egy JSON-objektum jön létre nevesített és identifiermodel. A külső JSON-objektum továbbra is névtelen, ezért a mező elnevezéséhez egy generált szám ($1) használatos.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Projekt statikus sztringje
Ebben a példában az ÉRTÉK kulcsszó statikus sztringgel jön létre sztringtömbként.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Összetett kivetítés
Ebben a példában a lekérdezés egy SELECT záradék, egy VALUE kulcsszó, egy záradék és egy FROM JSON-előrejelzés kombinációjával hajt végre egy közös lekérdezést az ügyfél által elemezni kívánt JSON-objektummá átalakított eredményekkel.
SELECT VALUE {
name: p.name,
link: p.metadata.link,
firstTag: p.tags[0]["value"]
}
FROM
products p
[
{
"name": "Remdriel Shoes",
"link": "https://www.adventure-works.com/remdriel-shoes/68719521615.p",
"firstTag": "suede-leather-and-mesh"
},
{
"name": "Tirevy trunks",
"link": "https://www.adventure-works.com/tirevy-trunks/68719520573.p",
"firstTag": "polyester"
},
...
]
Megjegyzések
- A
SELECT *szintaxis csak akkor érvényes, haFROMa záradék pontosan egy aliast deklarált.SELECT *identitásvetítést biztosít, amely akkor lehet hasznos, ha nincs szükség kivetítésre.SELECT *csak akkor érvényes, haFROMa záradék meg van adva, és csak egyetlen bemeneti forrást vezet be. -
SELECT *MindkettőSELECT <select_list>szintaktikus cukor, és egyszerűSELECTállításokkal fejezhető ki. - A kifejezés
SELECT * FROM ... AS from_alias ...egyenértékű a következő kifejezésselSELECT from_alias FROM ... AS from_alias ...: . - A kifejezés
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]egyenértékű a következő kifejezésselSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...]: .