ARRAY_INTERSECTION 函数 - Amazon Redshift

从补丁 198 开始,Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息,请参阅博客文章

ARRAY_INTERSECTION 函数

返回一个新数组,其中仅包含两个输入数组中都存在的元素。该函数是 NULL 安全的,这意味着它将 NULL 视为已知对象。无法保证结果中元素的顺序。

语法

ARRAY_INTERSECTION( array1, array2 [, distinct] )

参数

array1

一个用于指定数组的 SUPER 表达式。

array2

一个用于指定数组的 SUPER 表达式。

区分

一个布尔值,用于指定是否只返回不同的元素:

  • 区分 = FALSE: Multi-set semantics apply. Duplicate elements are preserved, and the frequency of each element in the result equals the minimum of its frequencies in the two input arrays.
  • 区分 = TRUE: Set semantics apply. Only unique elements common to both arrays are returned, with no duplicates.

默认值为 FALSE。

返回类型

ARRAY_INTERSECTION 函数返回 SUPER 类型。

示例

以下示例显示 ARRAY_INTERSECTION 函数。

SELECT ARRAY_INTERSECTION(ARRAY('a','b','c'), ARRAY('b','c','d')); array_intersection -------------------- ["b","c"] (1 row)

多集语义:

SELECT ARRAY_INTERSECTION(ARRAY('a','b','b'), ARRAY('b','b','b')); array_intersection -------------------- ["b","b"] (1 row)

集语义:

SELECT ARRAY_INTERSECTION(ARRAY('a','b','b'), ARRAY('b','b','b'), TRUE); array_intersection -------------------- ["b"] (1 row)

NULL 被视为已知对象。

SELECT ARRAY_INTERSECTION(ARRAY('a',NULL), ARRAY('b',NULL)); array_intersection -------------------- [null] (1 row)

另请参阅