Retorna os elementos presentes no array a, mas ausentes no array b, sem duplicatas, em um novo array.
Formato do comando
array<T> array_except(array<T> <a>, array<T> <b>)
Descrição dos parâmetros
a e b: obrigatórios. Arrays. Em array<T>, T indica o tipo de dados dos elementos, que podem ser de qualquer tipo. Os tipos de dados de a e b devem ser idênticos.
Valor retornado
Retorna um valor do tipo ARRAY. Regras de retorno:
O novo array não contém elementos duplicados e preserva a ordem dos elementos em a.
Se o array contiver elementos NULL, esses valores participarão da operação.
Se apenas um dos arrays de entrada estiver vazio, a função retornará o array não vazio sem duplicatas.
Se todos os arrays de entrada estiverem vazios, o resultado será um array vazio.
Exemplos de uso
-
Exemplo 1: identificar elementos no array
array(1, 1, 3, 3, 5, 5)ausentes no arrayarray(1, 1, 2, 2, 3, 3)e remover duplicatas. Comando:--返回[5]。 select array_except(array(1, 1, 3, 3, 5, 5), array(1, 1, 2, 2, 3, 3)); -
Exemplo 2: obter elementos exclusivos do array
array(1, 1, 3, 3, 5, 5, null, null)em relação ao arrayarray(1, 1, 2, 2, 3, 3), eliminando repetições. Comando:--返回[5,null]。 select array_except(array(1, 1, 3, 3, 5, 5, null, null), array(1, 1, 2, 2, 3, 3)); -
Exemplo 3: um dos arrays de entrada está vazio. Comando:
--返回[2,1]。 select array_except(array(2, 1, 1, 2), cast(array() as array<int>)); -
Exemplo 4: todos os arrays de entrada estão vazios. Comando:
--返回[]。 select array_except(cast(array() as array<int>), cast(array() as array<int>));
Funções relacionadas
ARRAY_EXCEPT é uma função de tipos complexos. Para outras funções de processamento de dados de tipos complexos (como ARRAY, MAP, STRUCT e JSON), consulte Funções de tipos complexos.