ORDER BY cláusula
Aplica-se a: Databricks SQL
Databricks Runtime
Retorna as linhas de resultados de maneira ordenada na ordem especificada pelo usuário. Ao contrário da cláusula SORT BY , esta cláusula garante uma ordem total na saída.
Sintaxe
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
TODOS
Aplica-se a:
Databricks SQL
Databricks Runtime 12.2 LTS e superior
Uma abreviatura equivalente a especificar todas as expressões no
SELECT
list na ordem em que ocorrem. Sesort_direction
ounulls_sort_order
forem especificados, aplicam-se a cada expressão.-
Uma expressão de qualquer tipo usada para estabelecer uma ordem na qual os resultados são retornados.
Se a expressão um valor INT literal é interpretada como uma posição column no selectlist.
sort_direction
Especifica a ordem de classificação para a ordem por expressão.
-
ASC
: A direção de classificação para esta expressão é ascendente. -
DESC
: A ordem de classificação para esta expressão é decrescente.
Se a direção de classificação não for especificada explicitamente, por padrão, as linhas serão classificadas em ordem crescente.
-
nulls_sort_order
Opcionalmente, especifica se os NULL values são retornados antes ou depois dos valuesnão NULL. Se
null_sort_order
não for especificado, NULLs ordenará primeiro se a ordem de classificação for eASC
NULLS ordenará por último se a ordem de classificação forDESC
.-
NULLS FIRST
: NULL values são retornados primeiro, independentemente da ordem de classificação. -
NULLS LAST
: NULL values são retornados por último, independentemente da ordem de classificação.
-
Ao especificar mais de uma expressão, a classificação ocorre da esquerda para a direita. Todas as linhas são classificadas pela primeira expressão. Se houver duplicados de values para a primeira expressão, a segunda expressão é usada para resolver a ordem dentro do grupo de duplicatas, e o processo continua dessa forma. A ordem resultante não é determinística se houver values duplicados em todas as expressões de ordenação.
Exemplos
> 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