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


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

Функция SETINTERSECT возвращает набор выражений, содержащихся в обоих входных массивах без дубликатов.

Функция SETINTERSECT возвращает набор выражений, которые существуют в обоих входных массивах без дубликатов в Azure Cosmos DB для NoSQL.

Синтаксис

SETINTERSECT(<array_expr_1>, <array_expr_2>)

Arguments

Description
array_expr_1 Массив выражений.
array_expr_2 Массив выражений.

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

Возвращает массив выражений.

Примеры

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

Пересекаются статические массивы

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

SELECT VALUE {
  simpleIntersect: SETINTERSECT([1, 2, 3, 4], [3, 4, 5, 6]),
  emptyIntersect: SETINTERSECT([1, 2, 3, 4], []),
  duplicatesIntersect: SETINTERSECT([1, 2, 3, 4], [1, 1, 1, 1]),
  noMatchesIntersect: SETINTERSECT([1, 2, 3, 4], ["A", "B"]),
  unorderedIntersect: SETINTERSECT([1, 2, "A", "B"], ["A", 1])
}
[
  {
    "simpleIntersect": [3, 4],
    "emptyIntersect": [],
    "duplicatesIntersect": [1],
    "noMatchesIntersect": [],
    "unorderedIntersect": ["A", 1]
  }
]

Пересекаются поля массива в документах

В этом примере SETINTERSECT функция используется для поиска пересечения двух полей массива в документе.

SELECT
    p.name,
    SETINTERSECT(p.colors, p.inStockColors) AS availableColors
FROM
    products p
WHERE
    p.category = "modern-vests"
[
  {
    "name": "Snowilla vest",
    "availableColors": ["Rhino", "Finch"]
  }
]

Замечания

  • Эта функция не возвращает дубликаты.
  • Эта функция не использует индекс.
  • SKIP-VALIDATION