Categorias:

Funções de dados semiestruturados e estruturados (Matriz/objeto)

ARRAY_REMOVE

Dada uma fonte ARRAY, retorna uma ARRAY com os elementos do valor especificado removidos.

Por exemplo, ARRAY_REMOVE([2, 5, 7, 5, 1], 5) retorna uma ARRAY com os elementos iguais a 5 removidos ([2, 7, 1]).

Sintaxe

ARRAY_REMOVE( <array> , <value_of_elements_to_remove> )
Copy

Argumentos

array

A matriz de origem.

value_of_elements_to_remove

O valor VARIANT dos elementos a serem removidos. A função remove elementos iguais a esse valor.

Se você especificar um valor VARCHAR, deverá primeiro converter o valor para VARIANT.

Retornos

Uma ARRAY com todos os elementos iguais ao valor especificado removidos.

Se value_of_elements_to_remove for NULL, a função retornará NULL.

Notas de uso

  • Se todos os elementos em array forem iguais a value_of_elements_to_remove, a função retornará uma ARRAY vazia.

Exemplos

O exemplo a seguir retorna uma ARRAY com elementos com o valor 5 removido.

SELECT ARRAY_REMOVE(
  [1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL],
  5);
Copy
+---------------------------------------------+
| ARRAY_REMOVE(                               |
|   [1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL], |
|   5)                                        |
|---------------------------------------------|
| [                                           |
|   1,                                        |
|   "5",                                      |
|   undefined                                 |
| ]                                           |
+---------------------------------------------+

O exemplo a seguir remove os elementos com o valor 5 de uma ARRAY que contém apenas elementos com o valor 5. A função retorna uma ARRAY vazia.

SELECT ARRAY_REMOVE([5, 5], 5);
Copy
+-------------------------+
| ARRAY_REMOVE([5, 5], 5) |
|-------------------------|
| []                      |
+-------------------------+

O exemplo a seguir remove elementos com o valor 'a' de uma ARRAY. Conforme mostrado no exemplo, você deve converter o valor como VARIANT.

SELECT ARRAY_REMOVE(
  ['a', 'b', 'a', 'c', 'd', 'a'],
  'a'::VARIANT);
Copy
+-----------------------------------+
| ARRAY_REMOVE(                     |
|   ['A', 'B', 'A', 'C', 'D', 'A'], |
|   'A'::VARIANT)                   |
|-----------------------------------|
| [                                 |
|   "b",                            |
|   "c",                            |
|   "d"                             |
| ]                                 |
+-----------------------------------+