|
Программирование >> Руководство по sql
в примерах этой книги используется кодовая страница 850 и двоичный порядок сортировки. Список символов этой страницы выглядит следующим образом: Binary Sort Order for Code Page 850 (cp850). Characters, in Order ! #$%&()*+,/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]Vabc ciefghijklmnopqrstuvwxyz{}~n □ □,/.....tt %oe<etZZD - - s>stiz--LnAj§-©§<<--®2°±j-MU§>>lrz[AAMLCgCEEEiiDDNivi0000xft UUYTBfaaaalcgceeeiicfdnfioeoofuuuuyt- Как выполняется сортировка Предположим, что вы хотите получить список цен, идентификационных номеров и номеров издателей из таблицы titles. Для этого можно вьшолнить следующий запрос: SQL:
В этом списке представлена вся запрошенная вами информация, но разбираться в ней не удобно, так как результат неупорядочен. Чтобы сделать эту информацию более полезной, ее надо отсортировать по цене. Это делается следующим образом: SQL: select price, title id, pub id from titles order by price Результат: price title id pub id NULL MC3026 0877 NULL PC9999 1389
Теперь строки будут отсортированы по цене. Синтаксис предложения ORDER BY Общая форма предложения ORDER BY в операторе SELECT имеет следующий вид: SELECT список выбора FROM список таблиц [WHERE условия] [ORDER BY {выражение [ASC DESC] позиция [ASC DESC]} [ , {выражение [ASC ) DESC] позиция [ASC DESC] } ]...] В больщинстве (но не во всех) систем требуется, чтобы каждый элемент, по которому выполняется сортировка (столбец или выражение), присутствовали в списке выбора. Для выражений имеется три возможности: можно использовать целое число, описывающее позицию выражения в списке выбора, использовать заголовок столбца, определенный в списке выбора (price * ytd sales as income), или использовать выражение целиком. Детали этого для пяти различных систем приведены в Приложении Б. За подробностями также обращайтесь к руководству по своей системе. Сортировка внутри сортировки Итак, мы получили результат, отсортированный по ценам. Однако было бы неплохо, чтобы книги в каждой ценовой категории, выпущенные одним издателем, щли в списке рядом. Для этого в список ORDER BY нужно добавить столбец pubJd: SQL: select price, title id, pub id from titles order by price, pub id Результат: price title id pub id NULL MC3026 0877 NULL PC9999 1389 2.99 BU2075 0736
При использовании более одного столбца в предложении ORDER BY выполняется так называемая вложенная (nested) сортировка, т.е. сначала выполняется сортировка по цене, а затем по значениям pub ld в каждой ценовой категории. Количество уровней сортировки может быть любым. Во многих системах требуется, чтобы элемент, по которому ведется сортировка, присутствовал в списке выбора, однако порядок их перечисления в предложении ORDER BY не обязан совпадать с порядком перечисления столбцов и выражений в операторе SELECT. Если в предыдущем примере поменять порядок сортировки так, чтобы результаты сначала упорядочивались по столбцу pub id, а затем по столбцу price, результат изменится следующим образом: SQL: select price, title id, pub id from titles order by pub id, price Результат:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |