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)earray(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)earray(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.