ORDER BY-component
Van toepassing op: Databricks SQL Databricks Runtime
Retourneert de resultaatrijen op een gesorteerde manier in de door de gebruiker opgegeven volgorde. In tegenstelling tot de SORT BY-component garandeert deze component een totale volgorde in de uitvoer.
Syntaxis
ORDER BY { { ALL [ sort_direction] [ nulls_sort_oder ] } |
{ expression [ sort_direction ] [ nulls_sort_oder ] } [, ...] }
sort_direction
[ ASC | DESC ]
nulls_sort_order
[ NULLS FIRST | NULLS LAST ]
Parameters
ALL
Van toepassing op: Databricks SQL Databricks Runtime 12.2 LTS en hoger
Een afkorting die overeenkomt met het opgeven van alle expressies in de
SELECT
lijst in de volgorde waarin ze voorkomen. Alssort_direction
ofnulls_sort_order
worden opgegeven, zijn ze van toepassing op elke expressie.-
Een expressie van elk type dat wordt gebruikt om een volgorde te bepalen waarin resultaten worden geretourneerd.
Als de expressie een letterlijke INT-waarde is, wordt deze geïnterpreteerd als een kolompositie in de selectielijst.
sort_direction
Hiermee geeft u de sorteervolgorde voor de volgorde op expressie.
ASC
: De sorteerrichting voor deze expressie is oplopend.DESC
: De sorteervolgorde voor deze expressie is aflopend.
Als de sorteerrichting niet expliciet is opgegeven, worden standaard rijen oplopend gesorteerd.
nulls_sort_order
Hiermee geeft u optioneel aan of NULL-waarden worden geretourneerd vóór/na niet-NULL-waarden. Als
null_sort_order
dit niet is opgegeven, sorteren NULL's eerst als sorteervolgorde isASC
en NULLS-sorteervolgorde het laatst als de sorteervolgorde isDESC
.NULLS FIRST
: NULL-waarden worden eerst geretourneerd, ongeacht de sorteervolgorde.NULLS LAST
: NULL-waarden worden als laatste geretourneerd, ongeacht de sorteervolgorde.
Wanneer u meer dan één expressies sorteert, wordt van links naar rechts gesorteerd. Alle rijen worden gesorteerd op de eerste expressie. Als er dubbele waarden voor de eerste expressie zijn, wordt de tweede expressie gebruikt om de volgorde binnen de groep dubbele waarden enzovoort op te lossen. De resulterende volgorde is niet deterministisch als er dubbele waarden in alle volgorde per expressie zijn.
Voorbeelden
> CREATE TABLE person (id INT, name STRING, age INT);
> INSERT INTO person VALUES
(100, 'John' , 30),
(200, 'Mary' , NULL),
(300, 'Mike' , 80),
(400, 'Jerry', NULL),
(500, 'Dan' , 50);
-- Sort rows by age. By default rows are sorted in ascending manner with NULL FIRST.
> SELECT name, age FROM person ORDER BY age;
Jerry NULL
Mary NULL
John 30
Dan 50
Mike 80
-- Sort rows in ascending manner keeping null values to be last.
> SELECT name, age FROM person ORDER BY age NULLS LAST;
John 30
Dan 50
Mike 80
Mary NULL
Jerry NULL
-- Sort rows by age in descending manner, which defaults to NULL LAST.
> SELECT name, age FROM person ORDER BY age DESC;
Mike 80
Dan 50
John 30
Jerry NULL
Mary NULL
-- Sort rows in ascending manner keeping null values to be first.
> SELECT name, age FROM person ORDER BY age DESC NULLS FIRST;
Jerry NULL
Mary NULL
Mike 80
Dan 50
John 30
-- Sort rows based on more than one column with each column having different
-- sort direction.
> SELECT * FROM person ORDER BY name ASC, age DESC;
500 Dan 50
400 Jerry NULL
100 John 30
200 Mary NULL
300 Mike 80
-- Sort rows based on all columns in the select list
> SELECT * FROM person ORDER BY ALL ASC;
100 John 30
200 Mary NULL
300 Mike 80
400 Jerry NULL
500 Dan 50