Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De SELECT component identificeert velden die moeten worden geretourneerd in queryresultaten. De component projecteert deze velden vervolgens in de JSON-resultatenset.
Elke query bestaat uit een SELECT component en optioneel FROM en WHERE componenten, volgens ANSI SQL-standaarden. Normaal gesproken wordt de bron in de FROM component geïnventariseerd en de WHERE component past een filter toe op de bron om een subset van JSON-items op te halen.
Syntaxis
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 |
Eigenschappen of waarde die moeten worden geselecteerd voor de resultatenset. |
* |
Hiermee geeft u op dat de waarde moet worden opgehaald zonder wijzigingen aan te brengen. Met name als de verwerkte waarde een object is, worden alle eigenschappen opgehaald. |
object_property_list |
Hiermee geeft u de lijst met eigenschappen die moeten worden opgehaald. Elke geretourneerde waarde is een object met de opgegeven eigenschappen. |
VALUE |
Hiermee geeft u op dat de JSON-waarde moet worden opgehaald in plaats van het volledige JSON-object. Dit argument, in tegenstelling tot <property_list> de verwachte waarde niet in een object verpakt. |
DISTINCT |
Hiermee geeft u op dat duplicaten van projecteigenschappen moeten worden verwijderd. |
scalar_expression |
Expressie die de waarde vertegenwoordigt die moet worden berekend. |
Retourtypen
Retourneert de verwachte velden of waarden zoals opgegeven.
Voorbeelden
Deze sectie bevat voorbeelden van het gebruik van deze querytaalconstructie.
Statische tekenreekswaarden selecteren
In dit voorbeeld worden twee statische tekenreekswaarden geretourneerd en wordt een matrix geretourneerd met één object dat beide waarden bevat. Omdat de waarden geen naam hebben, wordt een opeenvolgend gegenereerd getal gebruikt om het equivalente json-veld een naam te geven.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Projectvelden
In dit voorbeeld wordt JSON-projectie gebruikt om de exacte structuur en veldnamen voor het resulterende JSON-object nauwkeurig af te stemmen. Hier wordt een JSON-object gemaakt met velden met de naam identifier en model. Het externe JSON-object is nog steeds niet benoemd, dus er wordt een gegenereerd getal ($1) gebruikt om dit veld een naam te geven.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Statische tekenreeks van Project
In dit voorbeeld wordt het trefwoord VALUE gebruikt met een statische tekenreeks om als resultaat een matrix met tekenreeksen te maken.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Complexe projectie
In dit voorbeeld gebruikt de query een combinatie van een SELECT component, het VALUE trefwoord, een FROM component en JSON-projectie om een algemene query uit te voeren met de resultaten die zijn getransformeerd naar een JSON-object voor de client om te parseren.
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"
},
...
]
Opmerkingen
- De
SELECT *syntaxis is alleen geldig alsFROMde component precies één alias heeft gedeclareerd.SELECT *biedt een identiteitsprojectie, wat handig kan zijn als er geen projectie nodig is.SELECT *is alleen geldig alsFROMde component is opgegeven en slechts één invoerbron heeft geïntroduceerd. - Beide
SELECT <select_list>enSELECT *zijn syntactische suiker en kunnen worden uitgedrukt met behulp van eenvoudigeSELECTinstructies. - De expressie
SELECT * FROM ... AS from_alias ...is gelijk aanSELECT from_alias FROM ... AS from_alias .... - De expressie
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]is gelijk aanSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].