Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по SQL.DOC
Скачиваний:
205
Добавлен:
01.05.2014
Размер:
1.16 Mб
Скачать

7.5... Скалярное выражение на основе выбранных полей

Язык SQL позволяет помещать скалярные выражения, константы, символы,текст и комментарии среди выбранных полей. Эти выражения могут дополнять или замещать поля в предложениях SELECT, и могут включать в себя одно или более выбранных полей. Например, можно послать запрос

SELECT snum, sname, city, ’have’, comm * 100, ‘%’

FROM Salespeople;

и получить в дополнительном столбце на основе столбца comm значения в процентах. Пример вывода приведен ниже.

============ SQL Execution Log ============

|=============================================|

| snum sname city |

|-------------------------------------------------------------------------------------|

| 1001 Peel London have 12.000000 % |

| 1002 Serres San Jose have 13.000000 % |

| 1004 Motika London have 11.000000 % |

| 1007 Rifkin Barcelona have 15.000000 % |

| 1003 Axelrod New York have 10.000000 % |

==============================================

Следует обратить внимание на то, что дополнительный столбец не поименован.

7.6... Упорядочение вывода полей

Язык SQL использует команду ORDER BY для того, чтобы упорядочивать вывод. Многочисленые столбцы упорядочиваются один внутри другого и можно определять возрастание ( ASC ) или убывание ( DESC ) для каждого столбца. По умолчанию установлено возрастание. Например,

SELECT *

FROM Orders

ORDER BY cnum DESC;

Можно также упорядочивать таблицу с помощью другого столбца,

например, с помощью поля amt, внутри упорядочения поля cnum:

SELECT *

FROM Orders

ORDER BY cnum DESC, amt DESC;

Согласно требованиям ANSI столбцы, которые упорядочиваются, должны быть указаны в выборе SELECT.

Предложение ORDER BY может использоваться с GROUP BY для упорядочения агрегатных групп. В этом случае предложение ORDER BY должно быть последним.

Вместо имени столбца можно использовать его порядковый номер. Эти номера могут ссылаться не на порядок столбцов в таблице, а на их порядок в выводе. Другими словами, поле, упомянутое в предложении SELECT первым, для предложения ORDER BY - это поле 1, независимо от того, каким по порядку оно стоит в таблице. Например, можно использовать следующую команду, чтобы увидеть определенные поля таблицы Salespeople, упорядоченными в порядке убывания к наименьшему значению комиссионных :

=============== SQL Execution Log ============

SELECT sname, comm

FROM Salespeople

ORDER BY 2 DESC;

|================== |

| sname comm |

|----------------------------------|

| Peel 0.17 |

| Serres 0.13 |

| Rifkin 0.15 |

===================

Основная цель этой возможности ORDER BY - дать возмож-

ность использовать GROUP BY со столбцами вывода также, как и со столбцами таблицы. Столбцы, созданные агрегатной функцией, а также константы или выражения в предложении SELECT запроса, пригодны для использования с предложением ORDER BY, если оно ссылается к ним с помощью номера.

Например,

SELECT snum, COUNT ( DISTINCT onum )

FROM Orders

GROUP BY snum

ORDER BY 2 DESC;

Согласно стандарту ANSI NULL-значения в том поле, которое используется для упорядочивания вывода, могут произвольно располагаться относительно других значений.

Соседние файлы в предмете Базы данных