- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_MIN¶
Considerando uma ARRAY de entrada, retorna o elemento com o valor mais baixo que não seja SQL NULL. Se a ARRAY de entrada estiver vazia ou contiver apenas elementos SQL NULL, esta função retornará NULL.
Sintaxe¶
ARRAY_MIN( <array> )
Argumentos¶
array
A ARRAY de entrada.
Retornos¶
Esta função retorna um VARIANT que contém o elemento com o valor mais baixo que não seja SQL NULL.
A função retorna NULL se array
for NULL, vazio ou contiver apenas elementos SQL NULL.
Notas de uso¶
Um SQL NULL é diferente de um valor nulo explícito em dados semiestruturados (por exemplo, um JSON nulo em dados JSON). Valores nulos explícitos são considerados ao identificar o elemento com o valor mais baixo.
A função determina o elemento a ser retornado comparando os elementos da matriz. A função oferece suporte à comparação de elementos do mesmo tipo de dados ou dos seguintes tipos de dados:
Elementos dos tipos de dados NUMBER e FLOAT.
Elementos dos tipos de dados TIMESTAMP_LTZ e TIMESTAMP_TZ.
Se a matriz contiver elementos de outros tipos de dados, converta os elementos em um tipo de dados comum, conforme mostrado no exemplo abaixo.
Exemplos¶
O exemplo a seguir retorna um VARIANT contendo o elemento com o valor mais baixo em uma constante ARRAY:
SELECT ARRAY_MIN([20, 0, NULL, 10, NULL]);
+------------------------------------+
| ARRAY_MIN([20, 0, NULL, 10, NULL]) |
|------------------------------------|
| 0 |
+------------------------------------+
O exemplo a seguir demonstra que a função retorna NULL se a ARRAY de entrada estiver vazia:
SELECT ARRAY_MIN([]);
+---------------+
| ARRAY_MIN([]) |
|---------------|
| NULL |
+---------------+
O exemplo a seguir demonstra que a função retorna NULL se a ARRAY de entrada contiver apenas SQL NULLs:
SELECT ARRAY_MIN([NULL, NULL, NULL]);
+-------------------------+
| ARRAY_MIN([NULL, NULL]) |
|-------------------------|
| NULL |
+-------------------------+
Para determinar o valor mínimo em uma matriz com elementos de diferentes tipos de dados, converta os elementos para o mesmo tipo de dados. O exemplo a seguir converte um elemento DATE em um elemento TIMESTAMP para determinar o valor mínimo na matriz:
SELECT ARRAY_MIN([date1::TIMESTAMP, timestamp1]) AS array_min
FROM (
VALUES ('1999-01-01'::DATE, '2023-12-09 22:09:26.000000000'::TIMESTAMP),
('2023-12-09'::DATE, '1999-01-01 22:09:26.000000000'::TIMESTAMP)
AS t(date1, timestamp1)
);
+---------------------------+
| ARRAY_MIN |
|---------------------------|
| "1999-01-01 00:00:00.000" |
| "1999-01-01 22:09:26.000" |
+---------------------------+