Catégories :

Fonctions de données semi-structurées et structurées (tableau/objet)

ARRAY_MIN

Étant donné un ARRAY d’entrée, renvoie l’élément dont la valeur la plus faible n’est pas SQL NULL. Si le ARRAY d’entrée est vide ou ne contient que des éléments SQL NULL, cette fonction renvoie NULL.

Syntaxe

ARRAY_MIN( <array> )
Copy

Arguments

array

Le ARRAY d’entrée.

Renvoie

Cette fonction renvoie un VARIANT qui contient l’élément dont la valeur la plus faible n’est pas un SQL NULL.

La fonction renvoie NULL si array est NULL, vide, ou ne contient que des éléments SQL NULL.

Notes sur l’utilisation

  • Un SQL NULL se distingue d’une valeur nulle explicite dans les données semi-structurées (par exemple, un JSON null dans des données JSON). Les valeurs nulles explicites sont prises en compte lors de l’identification de l’élément ayant la valeur la plus faible.

  • La fonction détermine l’élément à renvoyer en comparant les éléments du tableau. La fonction permet de comparer des éléments du même type de données ou des types de données suivants :

    • Les éléments de types de données NUMBER et FLOAT.

    • Les éléments de types de données TIMESTAMP_LTZ et TIMESTAMP_TZ.

    Si le tableau contient des éléments d’autres types de données, convertissez les éléments vers un type de données commun, comme le montre l’exemple ci-dessous.

Exemples

L’exemple suivant renvoie un VARIANT contenant l’élément ayant la valeur la plus faible dans une constante ARRAY :

SELECT ARRAY_MIN([20, 0, NULL, 10, NULL]);
Copy
+------------------------------------+
| ARRAY_MIN([20, 0, NULL, 10, NULL]) |
|------------------------------------|
| 0                                  |
+------------------------------------+

L’exemple suivant montre que la fonction renvoie NULL si le ARRAY d’entrée est vide :

SELECT ARRAY_MIN([]);
Copy
+---------------+
| ARRAY_MIN([]) |
|---------------|
| NULL          |
+---------------+

L’exemple suivant montre que la fonction renvoie NULL si le ARRAY d’entrée ne contient que des SQL NULLs :

SELECT ARRAY_MIN([NULL, NULL, NULL]);
Copy
+-------------------------+
| ARRAY_MIN([NULL, NULL]) |
|-------------------------|
| NULL                    |
+-------------------------+

Pour déterminer la valeur minimale d’un tableau contenant des éléments de types de données différents, convertissez les éléments dans le même type de données. L’exemple suivant convertit un élément DATE en un élément TIMESTAMP pour déterminer la valeur minimale du tableau :

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)
      );
Copy
+---------------------------+
| ARRAY_MIN                 |
|---------------------------|
| "1999-01-01 00:00:00.000" |
| "1999-01-01 22:09:26.000" |
+---------------------------+