- Categorias:
Funções de dados semiestruturados e estruturados (Ordem superior)
FILTER¶
Filtra uma matriz com base na lógica de uma expressão lambda.
Sintaxe¶
Argumentos¶
arrayA matriz que contém os elementos a serem filtrados. A matriz pode ser semiestruturada ou estruturada.
lambda_expressionUma expressão lambda que define a condição do filtro em cada elemento da matriz.
A expressão lambda deve ter apenas um argumento especificado na seguinte sintaxe:
Retornos¶
O tipo de retorno desta função é uma matriz do mesmo tipo que a matriz de entrada. A matriz retornada contém os elementos para os quais a condição do filtro retorna TRUE.
Se qualquer dos argumentos for NULL, a função retorna NULL sem relatar um erro.
Notas de uso¶
Quando o tipo de dados para o argumento lambda é especificado explicitamente, o elemento da matriz é forçado para o tipo especificado antes da invocação da lambda. Para obter informações sobre coerção, consulte Conversão do tipo de dados.
Se a condição do filtro for avaliada como NULL, o elemento da matriz correspondente será filtrado.
Exemplos¶
Os exemplos a seguir usam a função FILTER.
Filtrar por elementos de matriz maiores que um valor¶
Use a função FILTER para retornar objetos em uma matriz que tenham um valor maior ou igual a 50:
Filtrar por elementos de matriz que não são NULL¶
Use a função FILTER para retornar elementos de matriz que não são NULL:
Filtrar por elementos de matriz em uma tabela que sejam maiores ou iguais a um valor¶
Suponha que você tenha uma tabela chamada orders com as colunas order_id, order_date e order_detail. A coluna order_detail é uma matriz dos itens de linha, sua quantidade de compra e subtotal. A tabela contém duas linhas de dados. A seguinte instrução SQL cria esta tabela e insere as linhas:
Use a função FILTER para retornar pedidos com subtotais maiores ou iguais a 1500:
Faça referência a uma coluna de tabela em uma expressão lambda para filtrar elementos de matriz em dados de tabela¶
Criar uma tabela com uma coluna do tipo ARRAY e outra coluna do tipo INT:
Use a função FILTER para retornar os valores dos valores dos elementos de matriz em cada linha que são menores que o valor em col2: