Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La SELECT clausola identifica i campi da restituire nei risultati della query. La clausola proietta quindi tali campi nel set di risultati JSON.
Ogni query è costituita da una SELECT clausola e, facoltativamente FROMWHERE , e clausole, in base agli standard SQL ANSI. In genere, l'origine nella FROM clausola viene enumerata e la WHERE clausola applica un filtro sull'origine per recuperare un subset di elementi JSON.
Sintassi
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 |
Proprietà o valore da selezionare per il set di risultati. |
* |
Specifica che il valore deve essere recuperato senza apportare modifiche. In particolare, se il valore elaborato è un oggetto , vengono recuperate tutte le proprietà. |
object_property_list |
Specifica l'elenco delle proprietà da recuperare. Ogni valore restituito è un oggetto con le proprietà specificate. |
VALUE |
Specifica che il valore JSON deve essere recuperato anziché l'oggetto JSON completo. Questo argomento, a differenza <di property_list> non esegue il wrapping del valore proiettato in un oggetto . |
DISTINCT |
Specifica che i duplicati delle proprietà proiettate devono essere rimossi. |
scalar_expression |
Espressione che rappresenta il valore da calcolare. |
Tipi restituiti
Restituisce i campi o i valori proiettati come specificato.
Esempi
Questa sezione contiene esempi di come usare questo costrutto di linguaggio di query.
Selezionare valori stringa statici
In questo esempio due valori stringa statici e restituisce una matrice con un singolo oggetto contenente entrambi i valori. Poiché i valori sono senza nome, viene usato un numero generato sequenziale per denominare il campo JSON equivalente.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Campi progetto
In questo esempio, la proiezione JSON viene usata per ottimizzare la struttura esatta e i nomi dei campi per l'oggetto JSON risultante. In questo caso viene creato un oggetto JSON con campi denominati identifier e model. L'oggetto JSON esterno è ancora senza nome, quindi viene usato un numero generato ($1) per denominare questo campo.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Stringa statica del progetto
In questo esempio, la parola chiave VALUE viene usata con una stringa statica per creare una matrice di stringhe come risultato.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Proiezione complessa
In questo esempio, la query usa una combinazione di una SELECT clausola, la VALUE parola chiave, una FROM clausola e la proiezione JSON per eseguire una query comune con i risultati trasformati in un oggetto JSON da analizzare dal client.
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"
},
...
]
Osservazioni:
- La sintassi è valida solo se
FROMlaSELECT *clausola ha dichiarato esattamente un alias.SELECT *fornisce una proiezione di identità, che può essere utile se non è necessaria alcuna proiezione.SELECT *è valido solo seFROMla clausola viene specificata e introdotta solo una singola origine di input. - Sia
SELECT <select_list>cheSELECT *sono zucchero sintattico e possono essere espressi usandoSELECTsemplici istruzioni. - L'espressione
SELECT * FROM ... AS from_alias ...equivale aSELECT from_alias FROM ... AS from_alias .... - L'espressione
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]equivale aSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].