Сортировка. ORDER BY



Оператор ORDER BY позволяет отсортировать извлекаемые значения по определенному столбцу:

1
2
3
SELECT *
FROM Products
ORDER BY ProductName

В данном случае строки сортируются по возрастанию значения столбца ProductName:

ORDER BY и сортировка в T-SQL

Сортировку также можно проводить по псевдониму столбца, который определяется с помощью оператора AS:

1
2
3
SELECT ProductName, ProductCount * Price AS TotalSum
FROM Products
ORDER BY TotalSum

ORDER BY и сортировка в MS SQL Server 2016

По умолчанию применяется сортировка по возрастанию. С помощью дополнительного оператора DESC можно задать сортировку по убыванию.

1
2
3
SELECT ProductName
FROM Products
ORDER BY ProductName DESC

ORDER BY DESC и сортировка по убыванию в T-SQL

По умолчанию вместо 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

Сортировка по нескольким столбцам в T-SQL

В качестве критерия сортировки также можно использовать сложно выражение на основе столбцов:

1
2
3
SELECT ProductName, Price, ProductCount
FROM Products
ORDER BY ProductCount * Price

Сортировка по сложному выражению в ORDER BY в T-SQL