从补丁 198 开始,Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息,请参阅博客文章
ARRAY_EXCEPT 函数
通过保留第一个数组中不存在于第二个数组中的元素,返回两个数组之间的差异。该函数是 NULL 安全的,这意味着它将 NULL 视为已知对象。
语法
ARRAY_EXCEPT( array1, array2 [, distinct] )
参数
- array1
-
一个用于指定第一个数组的 SUPER 表达式。
- array2
-
一个用于指定第二个数组的 SUPER 表达式。
- 区分
-
一个布尔值,用于指定是否只返回不同的元素:
distinct = FALSE:多集语义适用。第一个数组中元素的每次出现都与第二个数组中的出现进行匹配。如果第一个数组中某个元素的出现次数多于第二个数组,则多余的出现次数将保留在结果中。
distinct = TRUE:集合语义适用。两个数组都被视为集合,忽略重复的元素。如果第一个数组中的元素存在于第二个数组中的任何地方,则无论出现次数如何,元素都将被移除。
默认值为 FALSE。
返回类型
ARRAY_EXCEPT 函数返回 SUPER 类型。
示例
以下示例显示 ARRAY_EXCEPT 函数。
SELECT ARRAY_EXCEPT(ARRAY('a','b','c'), ARRAY('b','c','d')); array_except -------------- ["a"] (1 row)
多集语义:
SELECT ARRAY_EXCEPT(ARRAY('b','b','b','b'), ARRAY('b','b')); array_except -------------- ["b","b"] (1 row)
集语义:
SELECT ARRAY_EXCEPT(ARRAY('a','b','b'), ARRAY('b'), TRUE); array_except -------------- ["a"] (1 row)
NULL 被视为已知对象。
SELECT ARRAY_EXCEPT(ARRAY('a',NULL), ARRAY(NULL)); array_except -------------- ["a"] (1 row)