Поделиться через


FROM — язык запросов в Cosmos DB (в Azure и Fabric)

Предложение FROM определяет источник данных для запроса.

Синтаксис

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 Указывает источник данных с псевдонимом или без нее.
AS input_alias Указывает, что input_alias представляет собой набор значений, возвращаемых базовым выражением контейнера.
input_alias IN Указывает, что input_alias должен представлять набор значений, полученных путем итерации по всем элементам массива каждого массива, возвращаемого базовым выражением контейнера.
container_expression Указывает выражение контейнера, используемое для извлечения элементов.
ROOT Указывает, что элемент должен быть получен из контейнера по умолчанию, подключенного в данный момент.
container_name Указывает, что элемент должен быть извлечен из предоставленного контейнера.
input_alias Указывает, что элемент должен быть получен из другого источника, определенного указанным псевдонимом.
<container_expression> '.' property_name Указывает, что элемент должен быть получен путем доступа к свойству property_name.
<container_expression> '[' "property_name" | array_index ']' Указывает, что элемент должен быть получен путем доступа к свойству property_name или элементу массива array_index для всех элементов, полученных указанным выражением контейнера.

Типы возвращаемых данных

Возвращает набор элементов из указанного источника.

Примеры

В этом разделе содержатся примеры использования этой конструкции языка запросов.

Предложение FROM с псевдонимом контейнера

В этом примере FROM предложение используется для указания текущего контейнера в качестве источника, предоставления уникального имени, а затем псевдонима. Затем псевдоним используется для проекта определенных полей в результатах запроса.

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

Предложение FROM с вложенным элементом в качестве источника

В этом примере FROM предложение также может уменьшить источник до меньшего подмножества. Чтобы перечислить только поддерев в каждом элементе, вложенный элемент может стать источником. Массив или вложенный объект можно использовать в качестве источника.

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

Замечания

  • Все псевдонимы, предоставленные или выводимые в <from_source>(s) должны быть уникальными.
  • Если выражение контейнера обращается к свойствам или элементам массива, и это значение не существует, это значение игнорируется и не обрабатывается дальше.
  • Выражение контейнера может быть областью действия контейнера или областью действия элемента.
  • Выражение является областью действия контейнера, если базовый источник выражения контейнера либоROOT.container_name Такое выражение представляет набор элементов, извлеченных из контейнера напрямую, и не зависит от обработки других выражений контейнера.
  • Выражение является областью действия элемента, если базовый источник выражения контейнера представлен input_alias ранее в запросе. Такое выражение представляет набор элементов, полученных при оценке выражения контейнера. Эта оценка выполняется в области каждого элемента, относящегося к набору, связанному с псевдонимом контейнера. Результирующий набор представляет собой объединение наборов, полученных путем оценки выражения контейнера для каждого элемента в базовом наборе.