array_sort Functie

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

Retourneert array gesorteerd op func.

Syntaxis

array_sort(array, func)

Argumenten

  • array: Een expressie die resulteert in een matrix.
  • func: Een lambda-functie die de sorteervolgorde definieert.

Retourneert

Het resultaattype komt overeen met het type array.

Als func u dit weglaat, wordt de matrix in oplopende volgorde gesorteerd.

Als func wordt opgegeven, zijn er twee argumenten nodig die twee elementen van de matrix vertegenwoordigen.

De functie moet -1, 0 of 1 retourneren, afhankelijk van of het eerste element kleiner is dan, gelijk aan of groter is dan het tweede element.

Als de func andere waarden (inclusief NULL) retourneert, array_sort mislukt en treedt er een fout op.

NULL-elementen worden aan het einde van de geretourneerde matrix geplaatst.

Voorbeelden

> 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]