ARRAY_EXCEPT 関数 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

ARRAY_EXCEPT 関数

最初の配列の要素のうち 2 番目の配列に存在しない要素を保持して、2 つの配列の差を返します。関数は NULL セーフです。つまり、NULL は既知のオブジェクトとして扱われます。

構文

ARRAY_EXCEPT( array1, array2 [, distinct] )

引数

array1

最初の配列を指定する SUPER 式。

array2

2 番目の配列を指定する SUPER 式。

$distinct

個別の要素のみを返すかどうかを指定するブール値。

  • distinct = FALSE: マルチセットセマンティクスが適用されます。最初の配列の要素が出現するたびに、2 番目の配列の出現と照合されます。最初の配列における要素の出現が 2 番目の配列よりも多い場合、余分な出現は結果に保持されます。

  • distinct = TRUE: セットセマンティクスが適用されます。どちらの配列もセットとして扱われ、重複する要素を無視します。最初の配列にある要素のうち、出現数に関係なく、2 番目の配列のどこかに 1 つでも存在する要素は削除されます。

デフォルトは 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)

関連情報