- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_INTERSECTION¶
Retorna uma matriz com os elementos correspondentes nas duas matrizes de entrada.
A função é NULL-safe, ou seja, trata NULLs como valores conhecidos para comparar a igualdade.
- Consulte também:
Sintaxe¶
Argumentos¶
array1Uma matriz que contém elementos a serem comparados.
array2Uma matriz que contém elementos a serem comparados.
Retornos¶
Esta função retorna um ARRAY que contém os elementos das matrizes de entrada que correspondem.
Se não houver sobreposição de elementos, a função retorna uma matriz vazia.
Se um ou ambos os argumentos forem NULL, a função retorna NULL.
A ordem dos valores dentro da matriz retornada não está especificada.
Notas de uso¶
Ao comparar dados do tipo
OBJECT, os objetos devem ser idênticos para serem considerados correspondentes. Para obter mais detalhes, consulte Exemplos (neste tópico).A diferença entre a função
ARRAY_INTERSECTIONe a funçãoARRAYS_OVERLAPrelacionada é que a funçãoARRAYS_OVERLAPsimplesmente retornaTRUEouFALSE, enquanto que a funçãoARRAY_INTERSECTIONretorna os valores reais sobrepostos.No Snowflake, as matrizes são conjuntos múltiplos, não conjuntos. Em outras palavras, as matrizes podem conter várias cópias do mesmo valor.
ARRAY_INTERSECTIONcompara as matrizes usando semânticas de múltiplos conjuntos (às vezes chamadas “semânticas de saco”), o que significa que a função pode retornar múltiplas cópias do mesmo valor. Se uma matriz tiver N cópias de um valor, e a outra matriz tiver M cópias do mesmo valor, então o número de cópias na matriz retornada será o menor de N ou M. Por exemplo, se N for 4 e M for 2, então o valor retornado terá 2 cópias.
Ambos os argumentos devem ser ARRAYs estruturadas ou ARRAYs semiestruturadas.
Se você estiver passando ARRAYs estruturadas:
A função retorna uma ARRAY de um tipo que pode acomodar ambos os tipos de entrada.
A ARRAY no segundo argumento deve ser comparável à ARRAY no primeiro argumento.
Exemplos¶
Este exemplo mostra o uso simples da função:
Os conjuntos podem ter mais de um valor correspondente:
Pode haver mais de uma instância com o mesmo valor correspondente. Por exemplo, na consulta abaixo, uma matriz tem três cópias da letra ‘B’, e a outra matriz tem duas cópias da letra ‘B’. O resultado contém duas correspondências:
Este exemplo utiliza uma quantidade maior de dados:
Isso mostra o uso com valores NULL:
Este exemplo mostra o uso com o tipo de dados OBJECT:
Embora os valores NULL em uma matriz sejam tratados como valores comparáveis, se você passar NULL em vez de uma matriz, então o resultado será NULL: