Delen via


array_sort functie

Van toepassing op:aangevinkt ja Databricks SQL aangevinkt ja Databricks Runtime

Retourneert array gesorteerd op basis van func.

Syntaxis

array_sort(array, func)

Argumenten

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

Retouren

Het resultaattype komt overeen met het type array.

Als func wordt weggelaten, wordt de array in oplopende volgorde gesorteerd.

Indien func wordt verstrekt, neemt het twee argumenten aan die twee elementen van de array vertegenwoordigen.

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

Als de func andere waarden retourneert (inclusief NULL), mislukt array_sort en genereert het een fout.

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]