SQLite Order By
Предложение SQLiteORDER BYиспользуется для упорядочивания данных по возрастанию или убыванию на основе одного или нескольких столбцов.
Синтаксис
Базовый синтаксис предложения ORDER BY выглядит следующим образом:
SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC];
- ASCЗначение по умолчанию: по возрастанию, от меньшего к большему
- DESCОт большего к меньшему, по убыванию
Вы можете использовать несколько столбцов в предложении ORDER BY, при этом столбцы, используемые для сортировки, должны входить в список столбцов:
SELECT
select_list
FROM
table
ORDER BY
column_1 ASC,
column_2 DESC;
column_1 и column_2, если после них не указано правило сортировки, по умолчанию используется порядок ASC по возрастанию. Приведённая выше инструкция сортирует по column_1 по возрастанию и column_2 по убыванию, что эквивалентно следующей инструкции:
SELECT
select_list
FROM
table
ORDER BY
column_1,
column_2 DESC;
Примеры
Предположим, таблица COMPANY содержит следующие записи:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Ниже приведён пример, который отсортирует результаты по SALARY в порядке возрастания:
sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;
Это даст следующий результат:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 7 James 24 Houston 10000.0 2 Allen 25 Texas 15000.0 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 6 Kim 22 South-Hall 45000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
Ниже приведён пример, который отсортирует результаты по NAME и SALARY в порядке возрастания:
sqlite> SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;
Это даст следующий результат:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 5 David 27 Texas 85000.0 7 James 24 Houston 10000.0 6 Kim 22 South-Hall 45000.0 4 Mark 25 Rich-Mond 65000.0 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0
Ниже приведён пример, который отсортирует результаты по NAME в порядке убывания:
sqlite> SELECT * FROM COMPANY ORDER BY NAME DESC;
Это даст следующий результат:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 3 Teddy 23 Norway 20000.0 1 Paul 32 California 20000.0 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0 5 David 27 Texas 85000.0 2 Allen 25 Texas 15000.0Другие расширения