Оператор ORDER BY
позволяет сортировать данные в результирующей таблице.
Этот оператор используется в запросе SELECT
для определения порядка сортировки результирующего набора данных.
Синтаксис для сортировки данных в SQL такой:
SELECT column1,
column2,
...
FROM table_name
ORDER BY column1 [ASC|DESC],
column2 [ASC|DESC],
...;
column1
, column2
, ... - это имена столбцов, которые нужно отсортировать. Вы можете указать несколько столбцов для сортировки, разделяя их запятыми.
ASC
— это ключевое слово, которое означает "по возрастанию" и является значением по умолчанию, если вы не укажете другое.
DESC
— это ключевое слово, которое означает "по убыванию".
Таблица movies
id | title | release_year | genre | rating |
---|---|---|---|---|
1 | The Shawshank Redemption | 1994 | Drama | 9 |
2 | The Godfather | 1972 | Crime | 9 |
3 | The Godfather: Part II | 1974 | Crime | 9 |
4 | The Dark Knight | 2008 | Action | 9 |
5 | 12 Angry Men | 1957 | Drama | 8 |
6 | Schindlers List | 1993 | Biography | 8 |
7 | Pulp Fiction | 1994 | Crime | 8 |
8 | The Lord of the Rings: The Return of the King | 2003 | Adventure | 8 |
9 | Fight Club | 1999 | Drama | 8 |
10 | The Good, the Bad and the Ugly | 1966 | Western | 8 |
Например, если мы хотим отсортировать фильмы по году выпуска в порядке возрастания, мы можем использовать следующий запрос:
SELECT *
FROM movies
ORDER BY release_year ASC;
Результат
id | title | release_year | genre | rating |
---|---|---|---|---|
5 | 12 Angry Men | 1957 | Drama | 8 |
10 | The Good, the Bad and the Ugly | 1966 | Western | 8 |
2 | The Godfather | 1972 | Crime | 9 |
3 | The Godfather: Part II | 1974 | Crime | 9 |
6 | Schindlers List | 1993 | Biography | 8 |
1 | The Shawshank Redemption | 1994 | Drama | 9 |
7 | Pulp Fiction | 1994 | Crime | 8 |
9 | Fight Club | 1999 | Drama | 8 |
8 | The Lord of the Rings: The Return of the King | 2003 | Adventure | 8 |
4 | The Dark Knight | 2008 | Action | 9 |
Если мы хотим отсортировать фильмы по рейтингу в порядке убывания, мы можем использовать следующий запрос:
SELECT *
FROM movies
ORDER BY rating DESC;
Результат
id | title | release_year | genre | rating |
---|---|---|---|---|
1 | The Shawshank Redemption | 1994 | Drama | 9 |
2 | The Godfather | 1972 | Crime | 9 |
3 | The Godfather: Part II | 1974 | Crime | 9 |
4 | The Dark Knight | 2008 | Action | 9 |
5 | 12 Angry Men | 1957 | Drama | 8 |
6 | Schindlers List | 1993 | Biography | 8 |
7 | Pulp Fiction | 1994 | Crime | 8 |
8 | The Lord of the Rings: The Return of the King | 2003 | Adventure | 8 |
9 | Fight Club | 1999 | Drama | 8 |
10 | The Good, the Bad and the Ugly | 1966 | Western | 8 |
Если мы хотим отсортировать фильмы по жанру в алфавитном порядке и по году выпуска в порядке убывания, мы можем использовать следующий запрос:
SELECT *
FROM movies
ORDER BY genre ASC,
release_year DESC;
Здесь, сначала будут отсортированы фильмы по жанру в алфавитном порядке, затем внутри каждого жанра фильмы будут отсортированы по году выпуска в порядке убывания.
Результат
id | title | release_year | genre | rating |
---|---|---|---|---|
4 | The Dark Knight | 2008 | Action | 9 |
8 | The Lord of the Rings: The Return of the King | 2003 | Adventure | 8 |
6 | Schindlers List | 1993 | Biography | 8 |
7 | Pulp Fiction | 1994 | Crime | 8 |
3 | The Godfather: Part II | 1974 | Crime | 9 |
2 | The Godfather | 1972 | Crime | 9 |
9 | Fight Club | 1999 | Drama | 8 |
1 | The Shawshank Redemption | 1994 | Drama | 9 |
5 | 12 Angry Men | 1957 | Drama | 8 |
10 | The Good, the Bad and the Ugly | 1966 | Western | 8 |