Combina o Array a e o Array b elemento a elemento, com base nas posições dos elementos e em um combiner, e retorna um novo array.
Sintaxe
array<R> zip_with(array<T> <a>, array<S> <b>, function<T, S, R> <combiner>)
Parâmetros
a e b: obrigatórios. Estes parâmetros especificam arrays. O
Temarray<T>e oSemarray<S>especificam os tipos de dados dos elementos nos arrays. Os elementos podem ser de qualquer tipo de dado.combiner: obrigatório. Este parâmetro especifica a função interna, a função definida pelo usuário ou a expressão usada para combinar o Array a e o Array b elemento a elemento. O combiner consiste em dois parâmetros de entrada. Um dos parâmetros de entrada deve ter o mesmo tipo de dados dos elementos do Array a. O outro parâmetro de entrada deve ter o mesmo tipo de dados dos elementos do Array b.
Valor de retorno
Retorna um valor do tipo ARRAY. O valor de retorno varia de acordo com as seguintes regras:
Os elementos do array retornado ocupam as mesmas posições dos elementos do Array a e do Array b.
Se o Array a e o Array b tiverem comprimentos diferentes, a função adiciona elementos nulos ao array mais curto antes de combiná-los.
Exemplos
-- The return value is [2, 4, 6, null].
select zip_with(array(1,2,3), array(1,2,3,4), (x,y) -> x + y);
Este exemplo utiliza a combinação de um hífen com um sinal de maior (->). Para obter mais informações sobre como usar essa combinação (->) em funções Lambda, consulte Lambda functions.
Funções relacionadas
ZIP_WITH é 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.