Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klauzule SELECT identifikuje pole, která se mají vrátit ve výsledcích dotazu. Klauzule pak tato pole prodá do sady výsledků JSON.
Každý dotaz se skládá z SELECT klauzule a volitelně FROM a WHERE klauzulí podle standardů ANSI SQL. Obvykle se zdroj v FROM klauzuli vyčíslí a WHERE klauzule použije filtr na zdroj k načtení podmnožina položek JSON.
Syntaxe
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 |
Vlastnosti nebo hodnota, které se mají vybrat pro sadu výsledků. |
* |
Určuje, že hodnota by se měla načíst bez provedení jakýchkoli změn. Konkrétně pokud je zpracovaná hodnota objekt, načtou se všechny vlastnosti. |
object_property_list |
Určuje seznam vlastností, které se mají načíst. Každá vrácená hodnota je objekt se zadanými vlastnostmi. |
VALUE |
Určuje, že se hodnota JSON má načíst místo kompletního objektu JSON. Tento argument na rozdíl od <property_list> nezabalí projektovanou hodnotu do objektu. |
DISTINCT |
Určuje, že duplicity projektovaných vlastností by měly být odebrány. |
scalar_expression |
Výraz představující hodnotu, která se má vypočítat. |
Návratové typy
Vrátí zadaná projektovaná pole nebo hodnoty.
Examples
Tato část obsahuje příklady použití tohoto konstruktoru dotazovacího jazyka.
Výběr statických hodnot řetězců
V tomto příkladu dvě statické řetězcové hodnoty a vrátí matici s jedním objektem obsahujícím obě hodnoty. Vzhledem k tomu, že hodnoty nejsou pojmenovány, sekvenční vygenerované číslo slouží k pojmenování ekvivalentního pole JSON.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Pole projektu
V tomto příkladu se projekce JSON používá k vyladění přesné struktury a názvů polí pro výsledný objekt JSON. Zde se vytvoří objekt JSON s pojmenovanými identifier poli a model. Vnější objekt JSON je stále nepojmenovaný, takže vygenerované číslo ($1) se používá k pojmenování tohoto pole.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Statický řetězec projektu
V tomto příkladu se klíčové slovo VALUE používá se statickým řetězcem k vytvoření pole řetězců jako výsledek.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Složitá projekce
V tomto příkladu dotaz používá kombinaci klauzule, VALUE klíčového SELECT slova, FROM klauzule a projekce JSON k provedení společného dotazu s výsledky transformovanými na objekt JSON, aby klient parsoval.
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"
},
...
]
Poznámky
- Syntaxe
SELECT *je platná pouze v případě, žeFROMklauzule deklarovala přesně jeden alias.SELECT *poskytuje projekci identity, která může být užitečná, pokud není nutná žádná projekce.SELECT *je platná pouze v případě, žeFROMje zadaná klauzule a zavádí se pouze jeden vstupní zdroj. - Oba
SELECT <select_list>aSELECT *jsou syntaktický cukr a lze je vyjádřit pomocí jednoduchýchSELECTpříkazů. - Výraz
SELECT * FROM ... AS from_alias ...je ekvivalentní výrazuSELECT from_alias FROM ... AS from_alias .... - Výraz
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]je ekvivalentní výrazuSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].