Todos os produtos
Search
Central de documentação

MaxCompute:ARRAY_EXCEPT

Última atualização: Sep 22, 2026

Encontra os elementos presentes no Array a que não existem no Array b e os retorna como um novo array sem duplicatas.

Sintaxe

array<T> array_except(array<T> <a>, array<T> <b>)

Parâmetros

a e b: obrigatórios. Esses parâmetros especificam arrays. T em array<T> indica o tipo de dados dos elementos nos arrays. Os elementos podem ser de qualquer tipo de dados. Os elementos do Array a e os elementos do Array b devem ser do mesmo tipo de dados.

Valor de retorno

A função retorna um valor do tipo ARRAY. O valor de retorno varia de acordo com as seguintes regras:

  • O array retornado não contém elementos duplicados, e os elementos seguem a mesma ordem do Array a.

  • Se um elemento em um array for null, esse elemento null participará da operação.

  • Quando um dos arrays de entrada estiver vazio, a função retorna um novo array sem duplicatas com base no array não vazio.

  • Caso ambos os arrays de entrada estejam vazios, a função retorna um array vazio.

Exemplos

  • Exemplo 1: encontre os elementos presentes em array(1, 1, 3, 3, 5, 5) que não existem em array(1, 1, 2, 2, 3, 3) e retorne-os como um novo array sem duplicatas. Instrução de exemplo:

    -- The return value is [5]. 
    select array_except(array(1, 1, 3, 3, 5, 5), array(1, 1, 2, 2, 3, 3));
  • Exemplo 2: encontre os elementos presentes em array(1, 1, 3, 3, 5, 5, null, null) que não existem em array(1, 1, 2, 2, 3, 3) e retorne-os como um novo array sem duplicatas. Instrução de exemplo:

    -- 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));
  • Exemplo 3: identifique os elementos presentes em um array que não existem em outro e retorne-os como um novo array sem duplicatas. Um dos arrays de entrada está vazio. Instrução de exemplo:

    -- The return value is [2,1]. 
    select array_except(array(2, 1, 1, 2), cast(array() as array<int>)); 
  • Exemplo 4: localize os elementos presentes em um array que não existem em outro e retorne-os como um novo array sem duplicatas. Ambos os arrays de entrada estão vazios. Instrução de exemplo:

    -- The return value is []. 
    select array_except(cast(array() as array<int>), cast(array() as array<int>));

Funções relacionadas

ARRAY_EXCEPT é uma função de tipo complexo. Para obter mais informações sobre as funções usadas para processar dados de tipos complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.