Todos os produtos
Search
Central de documentação

MaxCompute:ARRAY_INTERSECT

Última atualização: Aug 20, 2026

Calcula a interseção de dois arrays e retorna um novo array com os valores presentes em ambos. Este tópico descreve a sintaxe, os parâmetros e exemplos da função ARRAY_INTERSECT.

Sintaxe

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

Parâmetros

a e b: obrigatórios. Especificam os arrays de entrada. O T em array<T> indica o tipo de dados dos elementos nos arrays. Os elementos podem ser de qualquer tipo de dados, mas os elementos do Array a e do Array b devem ter o mesmo tipo.

Valor retornado

Retorna um valor do tipo ARRAY. O resultado segue estas regras:

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

  • O array retornado não contém elementos duplicados e mantém a ordem do Array a.

  • Se o Array a ou o Array b for null, a função retornará null.

Exemplos

  • Exemplo 1: Calcular a interseção entre array(1, 2, 3) e array(1, 3, 5) e remover elementos duplicados. Comando de exemplo:

    -- The return value is [1,3]. 
    select array_intersect(array(1, 2, 3), array(1, 3, 5));
  • Exemplo 2: Obter a interseção de array(10, 20, 20, 30, 30, null, null) e array(30, 30, 20, 20, 40, null, null) e eliminar duplicatas. Comando de exemplo:

    -- The return value is [20,30,null]. 
    select array_intersect(array(10, 20, 20, 30, 30, null, null), array(30, 30, 20, 20, 40, null, null)); 

Funções relacionadas

ARRAY_INTERSECT é uma função de tipo complexo. Para obter mais informações sobre funções que processam tipos de dados complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.