Condividi tramite


FROM - Linguaggio di query in Cosmos DB (in Azure e Fabric)

La FROM clausola identifica l'origine dei dati per una query.

Sintassi

FROM <from_specification>

<from_specification> ::= <from_source> {[ JOIN <from_source>][,...n]}
<from_source> ::= <container_expression> [[AS] input_alias] | input_alias IN <container_expression>
<container_expression> ::= ROOT | container_name | input_alias | <container_expression> '.' property_name | <container_expression> '[' "property_name" | array_index ']'

Arguments

Description
from_source Specifica un'origine dati con o senza un alias.
AS input_alias Specifica che il input_alias è un set di valori restituiti dall'espressione contenitore sottostante.
input_alias IN Specifica che il input_alias deve rappresentare il set di valori ottenuti eseguendo l'iterazione su tutti gli elementi della matrice di ogni matrice restituita dall'espressione contenitore sottostante.
container_expression Specifica l'espressione contenitore da utilizzare per recuperare gli elementi.
ROOT Specifica che l'elemento deve essere recuperato dal contenitore predefinito, attualmente connesso.
container_name Specifica che l'elemento deve essere recuperato dal contenitore fornito.
input_alias Specifica che l'elemento deve essere recuperato dall'altra origine definita dall'alias specificato.
<container_expression> '.' property_name Specifica che l'elemento deve essere recuperato accedendo alla proprietà property_name.
<container_expression> '[' "property_name" | array_index ']' Specifica che l'elemento deve essere recuperato accedendo alla proprietà property_name o array_index elemento matrice per tutti gli elementi recuperati dall'espressione contenitore specificata.

Tipi restituiti

Restituisce il set di elementi dall'origine specificata.

Esempi

Questa sezione contiene esempi di come usare questo costrutto di linguaggio di query.

Clausola FROM con alias contenitore

In questo esempio la FROM clausola viene usata per specificare il contenitore corrente come origine, assegnargli un nome univoco e quindi eseguirne l'alias. L'alias viene quindi usato per proiettare campi specifici nei risultati della query.

SELECT VALUE 
  p.name
FROM
  products p
[
  "Joller Kid's Jacket",
  "Codlier Kid's Jacket",
  ...
]

Clausola FROM con sottoroot come origine

In questo esempio, la FROM clausola può anche ridurre l'origine a un subset più piccolo. Per enumerare solo un sottoalbero in ogni elemento, la sottoroot può diventare l'origine. Una matrice o una sottosezione dell'oggetto può essere usata come origine.

SELECT VALUE
  s
FROM
  products.sizes s
[
  {
    "key": "65",
    "description": "6.5",
    "order": 0
  },
  {
    "key": "75",
    "description": "7.5",
    "order": 1
  },
  ...
]

Osservazioni:

  • Tutti gli alias forniti o dedotti in <from_source>(s) devono essere univoci.
  • Se un'espressione contenitore accede a proprietà o elementi di matrice e tale valore non esiste, tale valore viene ignorato e non elaborato ulteriormente.
  • Un'espressione contenitore può essere con ambito contenitore o con ambito elemento.
  • Un'espressione è con ambito contenitore, se l'origine sottostante dell'espressione contenitore è ROOT o container_name. Tale espressione rappresenta un set di elementi recuperati direttamente dal contenitore e non dipende dall'elaborazione di altre espressioni del contenitore.
  • Un'espressione è con ambito elemento, se l'origine sottostante dell'espressione contenitore viene input_alias introdotta in precedenza nella query. Tale espressione rappresenta un set di elementi ottenuti valutando l'espressione del contenitore. Questa valutazione viene eseguita nell'ambito di ogni elemento appartenente al set associato al contenitore con alias. Il set risultante è un'unione di set ottenuti valutando l'espressione contenitore per ognuno degli elementi nel set sottostante.