Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SORTClause BY
Note
Pour savoir quelles intégrations de sources de AWS données prennent en charge cette SQL commande, consultez OpenSearch SQLCommandes et fonctions prises en charge.
La SORT BY
clause est utilisée pour renvoyer les lignes de résultats triées dans chaque partition dans l'ordre spécifié par l'utilisateur. Lorsqu'il y a plus d'une partition, le résultat SORT BY
peut être partiellement ordonné. Ceci est différent de la ORDER BY
clause qui garantit un ordre total de la sortie.
Syntaxe
SORT BY { expression [ sort_direction | nulls_sort_order ] [ , ... ] }
Paramètres
-
SORTPAR
Spécifie une liste d'expressions séparées par des virgules ainsi que les paramètres facultatifs sort_direction et nulls_sort_order qui sont utilisés pour trier les lignes au sein de chaque partition.
-
direction_tri
Spécifie éventuellement s'il faut trier les lignes par ordre croissant ou décroissant.
Les valeurs valides pour le sens de tri sont
ASC
pour le sens ascendant etDESC
pour le sens descendant.Si le sens de tri n'est pas explicitement spécifié, les lignes sont triées par défaut dans l'ordre croissant.
Syntaxe :
[ ASC | DESC ]
-
nulls_sort_order
Spécifie éventuellement si NULL les valeurs sont renvoyées avant/après les NULL non-valeurs.
Si
null_sort_order
ce n'est pas spécifié, NULLs triez d'abord si l'ordre de tri est le casASC
et NULLS triez en dernier si c'est le casDESC
.1. Si cette
NULLS FIRST
option est spécifiée, NULL les valeurs sont renvoyées en premier, quel que soit l'ordre de tri.2. Si cette
NULLS LAST
option est spécifiée, NULL les valeurs sont renvoyées en dernier, quel que soit l'ordre de tri.Syntaxe :
[ NULLS { FIRST | LAST } ]
Exemples
CREATE TABLE person (zip_code INT, name STRING, age INT); INSERT INTO person VALUES (94588, 'Shirley Rodriguez', 50), (94588, 'Juan Li', 18), (94588, 'Anil K', 27), (94588, 'John D', NULL), (94511, 'David K', 42), (94511, 'Aryan B.', 18), (94511, 'Lalit B.', NULL); -- Sort rows by `name` within each partition in ascending manner SELECT name, age, zip_code FROM person SORT BY name; +------------------+----+--------+ | name| age|zip_code| +------------------+----+--------+ | Anil K| 27| 94588| | Juan Li| 18| 94588| | John D|null| 94588| | Shirley Rodriguez| 50| 94588| | Aryan B.| 18| 94511| | David K| 42| 94511| | Lalit B.|null| 94511| +------------------+----+--------+ -- Sort rows within each partition using column position. SELECT name, age, zip_code FROM person SORT BY 1; +----------------+----+----------+ | name| age|zip_code| +------------------+----+--------+ | Anil K| 27| 94588| | Juan Li| 18| 94588| | John D|null| 94588| | Shirley Rodriguez| 50| 94588| | Aryan B.| 18| 94511| | David K| 42| 94511| | Lalit B.|null| 94511| +------------------+----+--------+ -- Sort rows within partition in ascending manner keeping null values to be last. SELECT age, name, zip_code FROM person SORT BY age NULLS LAST; +----+------------------+--------+ | age| name|zip_code| +----+------------------+--------+ | 18| Juan Li| 94588| | 27| Anil K| 94588| | 50| Shirley Rodriguez| 94588| |null| John D| 94588| | 18| Aryan B.| 94511| | 42| David K| 94511| |null| Lalit B.| 94511| +--------------+--------+--------+ -- Sort rows by age within each partition in descending manner, which defaults to NULL LAST. SELECT age, name, zip_code FROM person SORT BY age DESC; +----+------------------+--------+ | age| name|zip_code| +----+------------------+--------+ | 50| Shirley Rodriguez| 94588| | 27| Anil K| 94588| | 18| Juan Li| 94588| |null| John D| 94588| | 42| David K| 94511| | 18| Aryan B.| 94511| |null| Lalit B.| 94511| +----+------------------+--------+ -- Sort rows by age within each partition in descending manner keeping null values to be first. SELECT age, name, zip_code FROM person SORT BY age DESC NULLS FIRST; +----+------------------+--------+ | age| name|zip_code| +----+------------------+--------+ |null| John D| 94588| | 50| Shirley Rodriguez| 94588| | 27| Anil K| 94588| | 18| Juan Li| 94588| |null| Lalit B.| 94511| | 42| David K| 94511| | 18| Aryan B.| 94511| +--------------+--------+--------+ -- Sort rows within each partition based on more than one column with each column having -- different sort direction. SELECT name, age, zip_code FROM person SORT BY name ASC, age DESC; +------------------+----+--------+ | name| age|zip_code| +------------------+----+--------+ | Anil K| 27| 94588| | Juan Li| 18| 94588| | John D|null| 94588| | Shirley Rodriguez| 50| 94588| | Aryan B.| 18| 94511| | David K| 42| 94511| | Lalit B.|null| 94511| +------------------+----+--------+