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
Другие расширения