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)