SETINTERSECT - Cosmos DB 中的查询语言(在 Azure 和 Fabric 中)

SETINTERSECT 函数返回两个输入数组中不包含重复项的表达式集。

SETINTERSECT 函数在 Azure Cosmos DB for NoSQL 中返回两个输入数组中不存在重复项的表达式集。

Syntax

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