Fonction array_sort

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne array trié en fonction de func.

Syntaxe

array_sort(array, func)

Arguments

  • array : Expression qui prend la valeur d’un tableau.
  • func : Fonction lambda définissant l'ordre de tri.

Retours

Le type de résultat correspond au type de array.

Si func est omise, le tableau est trié par ordre croissant.

Si func est fournie, elle prend deux arguments représentant deux éléments du tableau.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Azure Databricks déclenche COMPARATOR_RETURNS_NULL si le func retourne NULL.

Les éléments NULL sont placés à la fin du tableau retourné.

Conditions d’erreur courantes

Exemples

> SELECT array_sort(array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END);
 [1,5,6]
> SELECT array_sort(array('bc', 'ab', 'dc'),
                    (left, right) -> CASE WHEN left IS NULL and right IS NULL THEN 0
                                          WHEN left IS NULL THEN -1
                                          WHEN right IS NULL THEN 1
                                          WHEN left < right THEN 1
                                          WHEN left > right THEN -1 ELSE 0 END);
 [dc,bc,ab]
> SELECT array_sort(array('b', 'd', null, 'c', 'a'));
 [a,b,c,d,NULL]

-- Comparator must return -1, 0, or 1, not NULL
> SELECT array_sort(array(1, 2), (l, r) -> NULL);
  Error: COMPARATOR_RETURNS_NULL