Сортировка. ORDER BY
Оператор ORDER BY позволяет отсортировать извлекаемые значения по определенному столбцу:
1 2 3 | SELECT * FROM Products ORDER BY ProductName |
В данном случае строки сортируются по возрастанию значения столбца ProductName:
Сортировку также можно проводить по псевдониму столбца, который определяется с помощью оператора AS:
1 2 3 | SELECT ProductName, ProductCount * Price AS TotalSum FROM Products ORDER BY TotalSum |
По умолчанию применяется сортировка по возрастанию. С помощью дополнительного оператора DESC можно задать сортировку по убыванию.
1 2 3 | SELECT ProductName FROM Products ORDER BY ProductName DESC |
По умолчанию вместо DESC используется оператор ASC:
1 2 3 | SELECT ProductName FROM Products ORDER BY ProductName ASC |
Если необходимо отсортировать сразу по нескольким столбцам, то все они перечисляются после оператора ORDER BY:
1 2 3 | SELECT ProductName, Price, Manufacturer FROM Products ORDER BY Manufacturer, ProductName |
В этом случае сначала строки сортируются по столбцу Manufacturer по возрастанию. Затем если есть две строки, в которых столбец Manufacturer имеет одинаковое значение, то они сортируются по столбцу ProductName также по возрастанию. Но опять же с помощью ASC и DESC можно отдельно для разных столбцов определить сортировку по возрастанию и убыванию:
1 2 3 | SELECT ProductName, Price, Manufacturer FROM Products ORDER BY Manufacturer ASC , ProductName DESC |
В качестве критерия сортировки также можно использовать сложно выражение на основе столбцов:
1 2 3 | SELECT ProductName, Price, ProductCount FROM Products ORDER BY ProductCount * Price |