Предложение ORDER BY |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Использование оператора CASE в предложении ORDER BY позволяет выполнить более сложную сортировку, чем та, которая допускается при использовании сортировки по набору столбцов. При сортировке по столбцу ram можно выполнить ее по возрастанию или по убыванию. Если же мы хотим вывести сначала средние модели, то есть те, которые отвечают W98, потом высшие (W2k), а уже потом низшие (W95), то можно поступить так:
Цифры перед названием ОС проставлены в соответствии с желательным порядком сортировки. В противном случае, упорядочение текстовых значений по возрастанию будет следующим: W2k, W95, W98. Вот результат вышеприведенного запроса (заголовок столбца сортировки выделен прописными буквами):
Есть еще более интересная возможность сортировки, а именно, сортировать по разным столбцам в зависимости от значения в некотором поле. Пусть, например, в группе W95 мы хотим выполнить сортировку по столбцу speed, в группе W98 — по столбцу hd, в группе W2k — по столбцу price. То есть в каждой группе, характеризуемой ОС описанными выше критериями, нам нужно выполнить сортировку по разным столбцам. Эту, на первый взгляд непростую задачу, решает простой запрос с оператором CASE в предложении ORDER BY:
Вот результат этого запроса:
Рекомендуемые упражнения: 65 |