Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БД.doc
Скачиваний:
35
Добавлен:
23.09.2019
Размер:
1.93 Mб
Скачать

Возможности форматирования

Возможности форматирования отображаемых данных в SQL довольно слабые. Можно вместо атрибута использовать выражения или константы, а также упорядочивать и группировать записи.

Если вместо атрибута использовать выражение или константу, соответствующий столбец в выборке, согласно стандарту, становится безымянным (в FoxPro столбец получает специальное имя). В случае константы все записи в этой позиции будут иметь значение, равное этой константе. Нельзя задать выборку с единственным столбцом, определенным константой.

Пример

Select Имя_прод, город, Комиссия*100, ‘%’ From продавцы;

Имя_прод

Город

Иванов

Москва

12

%

Петров

Тула

13

%

Сидоров

Москва

11

%

Борисов

Киров

15

%

Титов

Пенза

10

%

Конец примера

Для упорядочивания записей в выборке используется фраза Order by, в которой, как и в случае группировки, задается список атрибутов. Процесс упорядочивания начинается с самого правого атрибута списка и заканчивается самым левым. Каждый атрибут может быть снабжен признаком Asc для возрастающего порядка или Desc для убывающего. По умолчанию записи упорядочиваются по возрастанию значения указанного атрибута. Атрибут из списка Order by должен быть указан в выборке. Вместо имени, в списке может быть задан номер атрибута из списка выбора, это важно, если столбец задан агрегатной функцией или вообще безымянный. Однако гораздо лучше переименовать выбираемые данные так, чтобы имена столбцов были понятными. Переименование выполняется конструкцией <выбираемое выражение> As <имя>.

Упорядочивание может сочетаться с группировкой, в этом случае Order by выполняется последним.

Особый случай возникает, когда атрибут принимает значение null. Стандарт упорядочивания не определяет его положение в списке, в некоторых реализациях считается, что это значение наименьшее, в других – что наибольшее.

Пример

Select ном_зак, сумма, дата From Заказы

Order By дата, сумма Desc ;

Ном_зак

Сумма

Дата

305

5160,4

03.10

302

1900,1

03.10

306

1098,1

03.10

303

767,2

03.10

301

18,7

03.10

309

1713,2

04.10

307

75,7

04.10

308

4723,0

05.10

311

3891,8

06.10

310

1309,9

06.10

Select ном_прод, MAX(сумма) As макс_сумма From Заказы

Group By ном_прод Order By ном_прод;

Ном_прод

макс_сумма

11

4723,0

12

5160,4

13

1713,2

14

1900,1

17

1098,1

Select Ном_прод, Max(сумма) From Заказы

Group By Ном_прод Order By 2 Decs;

Ном_прод

12

5160,4

11

4723,0

14

1900,1

13

1713,2

17

1098,1

Конец примера