配列aに存在するが配列bには存在しない要素を検索し、要素を重複なしで新しい配列として返します。
構文
array<T> array_except(array<T> <a>, array<T> <b>)パラメーター
aおよびb: 必須。 これらのパラメータは配列を指定します。 array<T> のTは、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。 配列aの要素と配列bの要素は同じデータ型である必要があります。
戻り値
ARRAY型の値が返されます。 戻り値は、次のルールによって異なります。
返された配列には重複する要素はなく、要素は配列aと同じ順序でソートされます。
配列内の要素がnullの場合、null要素は操作に含まれます。
入力配列の1つが空の場合、重複なしに空でない配列に基づいて新しい配列が返されます。
2つの入力配列が空の場合、空の配列が返されます。
例
例1:
array(1、1、3、3、5、5)に存在するが、array(1、1、2、2、3、3)には存在しない要素を見つけ、要素を重複なしで新しい配列として返します。 例:-- The return value is [5]. select array_except(array(1, 1, 3, 3, 5, 5), array(1, 1, 2, 2, 3, 3));例2:
array(1、1、3、3、5、5、null、null)に存在するが、array(1、1、2、2、3、3)には存在しない要素を見つけ、要素を重複なしで新しい配列として返します。 例:-- The return value is [5,null]. select array_except(array(1, 1, 3, 3, 5, 5, null, null), array(1, 1, 2, 2, 3, 3));例3: 配列に存在するが別の配列には存在しない要素を見つけ、重複なしで新しい配列として要素を返します。 入力配列の1つは空です。 例:
-- The return value is [2,1]. select array_except(array(2, 1, 1, 2), cast(array() as array<int>));例4: 配列に存在するが別の配列には存在しない要素を見つけ、重複なしで新しい配列として要素を返します。 2つの入力アレイは空である。 例:
-- The return value is []. select array_except(cast(array() as array<int>), cast(array() as array<int>));
関連関数
ARRAY_EXCEPTは複合型関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.