Программирование >>  Руководство по sql 

1 ... 31 32 33 [ 34 ] 35 36 37 ... 105


19.99 BU1032 1389

20 РС8888 1389

22.95 РС1035 1389

Порядок столбцов (price, titleid, pubJd) по сравнению с предьщущим примером не изменился, однако строки расположились по-другому: сначала идут строки с идентификационным номером издателя - 0736, затем - с номером 0877 и наконец - с номером 1389.

Сортировка по возрастанию и по убыванию

с помощью ключевых слов ASC (по возрастанию) и DESC (по убыванию) можно изменить порядок сортировки в каждом отдельном случае. По умолчанию данные сортируются в порядке возрастания. Для изменения порядка сортировки нужно использовать ключевое слово DESC.

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

SQL:

select price, title id, pub id from titles

order by price desc, pub id Результат:

price

title id

pub id

2J.95

PC1035

1389~

21.59

PS1372

0736

20.95

TC3218

0877

PC8888

1389

19.99

PS3333

0736

19.99

MC2222

0877

19.99

BU7832

1389

19.99

BU1032

1389

14.99

TC7777

0877

11.95

TC4203

0877

11.95

BUllll

1389

10.95

PS2091

0736

7.99

PS7777

0736

PS2106

0736

2.99

BU2075

0736

2.99

MC3021

0877

NULL

MC3026

0877

NULL

PC9999

1389

Обратите внимание, что в рамках каждой ценовой категории идентификаторы издателей по-прежнему сортируются в порядке возрастания. В зависимости от вашей системы, нулевые (NULL) значения могут располагаться либо в начале, либо в конце списка. Чтобы изменить порядок сортировки в столбце pub id, нужно выполнить следующий запрос:

SQL:

select price, title id, pub id from titles

order by price desc, pub id desc



Результат:

price

title id

pub id

PC1035

1389

21.59

PS1372

0736

20.95

TC3218

0877

PC8888

1389

19.99

BU7832

1389

19.99

BU1032

1389

19.99

MC2222

0877

19.99

PS3333

0736

14.99

TC7777

0877

11.95

BUllll

1389

11.95

TC4203

0877

10.95

PS2091

0736

7.99

PS7777

0736

PS2106

0736

2.99

MC3021

0877

2.99

BU2075

0736

NULL

PC9999

1389

NULL

MC3026

0877

A как насчет выражений?

Что делать, если нужно отсортировать результат по значению выражения из списка выбора? SQL позволяет использовать для этих целей позицию выражения в списке выбора (представленную целым числом) или заголовки (также называемые псевдонимами или метками). Некоторые системы позволяют использовать само выражение. Ниже приведен пример, в котором могут возникнуть проблемы при сортировке по выражению price * ytd sales из списка выбора:

SQL:

select pub id, price * ytd sales, price, title id from titles

Результат:

pub id

price

title id

81900

PC8888

1389

81859.05

19.99

BU1032

0736

26654.64

7.99

PS7777

0736

81399.28

19.99

PS3333

1389

46318.2

11.95

BUllll

0877

40619.68

19.99

MC2222

0877

61384.05

14.99

TC7777

0877

180397.2

11.95

TC4203

1389

201501

22.95

PC1035

0877

NULL

NULL

MC3026

0736

55978.78

2.99

BU2075

0736

22392.75

10.95

PS2091



0736 0877 0877 1389 0736 1389

66515.54

7856.25

81859.05

8096.25

NULL

2.99

20.95

19.99

21.59

NULL

PS2106 MC3021 TC3218 BU7832 PS1372 PC9999

Сортировка no позиции. Предположим, что сначала результаты надо отсортировать по издателям, а затем по значению price * ytd sales. Поскольку это значение является выражением, для него нельзя использовать обычное имя столбца. Вместо него нужно использовать число 2, так как выражение является вторым элементом списка выбора. (Нумерация начинается с 1 и ведется слева направо. Числа со знаками (например, -2, +4 и т.д.) не допускаются и в любом случае не имеют никакого смысла.)

SQL:

select pub id, price * ytd sales, price, title id

from titles

order by pub id, 2

Результат:

pub id

price - --

title id

PS2106

0736

8096.25

21.59

PS1372

0736

22392.75

10.95

PS2091

0736

26654.64

7.99

PS7777

0736

55978.78

2.99

BU2075

0736

81399.28

19.99

PS3333

0877

NULL

NULL

MC3026

0877

7856.25

20.95

TC3218

0877

40619.68

19.99

MC2222

0877

61384.05

14.99

TC7777

0877

66515.54

2.99

MC3021

0877

180397.2

11.95

TC4203

1389

NULL

NULL

PC9999

1389

46318.2

11.95

BUllll

1389

81859.05

19.99

BU7832

1389

81859.05

19.99

BU1032

1389

81900

PC8888

1389

201501

22.95

PC1035

Цифры можно использовать как для выражений, так и для обычных столбцов. Ключевые слова ASC и DESC аналогично применяются и к цифрам, и к заголовкам столбцов. В следующем примере данные сортируются в порядке возрастания по столбцу pub id, а затем в порядке убывания по столбцу price:

SQL:

select pub id, price * ytd sales, price, title id from titles

order by pub id, 3 desc



1 ... 31 32 33 [ 34 ] 35 36 37 ... 105

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика