SQL Execution Log
SELECT snum, sname, city, comm * 100 FROM Salespeople;
snum
|
sname
|
city
|
|
1001
|
Peel
|
London
|
12.000000
|
1002
|
Serres
|
San Jose
|
13.000000
|
1004
|
Motika
|
London
|
11.000000
|
1007
|
Rifkin
|
Barcelona
|
15.000000
|
1003
|
Axelrod
|
New York
|
10.000000
|
Таблица 7.1: Помещение выражения в вашем запросе функции, константы, или выражения в предложении SELECT запроса. Так как имя столбца - один из атрибутов таблицы, столбцы которые приходят не из таблиц не имеют никаких имен. Другими словами непомеченные, столбцы вывода могут обрабатываться также как и столбцы извлеченные из таблиц, почти во всех ситуациях.
ПОМЕЩЕНИЕ ТЕКСТА В ВАШЕМ ВЫВОДЕ ЗАПРОСА
Символ 'A', когда ничего не значит сам по себе, - является констан той, такой например как число 1. Вы можете вставлять константы в предложение SELECT запроса, включая и текст. Однако символьные константы, в отличие от числовых констант, не могут использоваться в выражениях.
Вы можете иметь выражение 1 + 2 в вашем предложении SELECT, но вы не можете использовать выражение типа 'A' + 'B'; это приемлемо только если мы имеем в виду что 'A' и 'B' это просто буквы, а не переменные и не символы.
Тем ни менее, возможность вставлять текст в вывод ваших запросов очень удобная штука.
Вы можете усовершенствовать предыдущий пример представив комиссионные как проценты со знаком процента (%). Это даст вам возможность помещать в вывод такие единицы как символы и комментарии, как например в следующем примере (вывод показывается в Таблице 7.2 )
SELECT snum, sname, city, ' % ', comm * 100
FROM Salespeople;
SQL Execution Log
SELECT snum, sname, city, '%' comm * 100
FROM Salespeople;
snum
|
sname
|
city
|
|
|
1001
|
Peel
|
London
|
%
|
12.000000
|
1002
|
Serres
|
San Jose
|
%
|
13.000000
|
1004
|
Motika
|
London
|
%
|
11.000000
|
1007
|
Rifkin
|
Barcelona
|
%
|
15.000000
|
1003
|
Axelrod
|
New York
|
%
|
10.000000
|
Таблица 7.2: Вставка символов в ваш вывод
Обратите внимание что пробел перед процентом вставляется как часть строки. Эта же самая особенность может использоваться чтобы маркировать вывод вместе с вставляемыми комментариями. Вы должны помнить, что этот же самый комментарий будет напечатан в каждой строке вывода, а не просто один раз для всей таблицы. Предположим что вы генерируете вывод для отчета который бы указывал число порядков получаемых в течение каждого дня. Вы можете промаркировать ваш вывод (см. Таблицу 7.3 ) сформировав запрос следующим образом:
SELECT ' For ', odate, ', there are ',
COUNT (DISTINCT onum ), 'orders.'
FROM Orders
GROUP BY odate;
Грамматической некорректности вывода, на 5 Октября, невозможно избежать не создав запроса, еще более сложного чем этот. (Вы будете должны использовать два запроса с UNION, который
SQL Execution Log
SELECT 'For', odate, ', ' there are ' ,
COUNT (DISTINCT onum), ' orders '
FROM Orders GROUP BY odate;
odate
|
|
|
|
|
For
|
10/03/1990 ,
|
there are
|
5
|
orders.
|
For
|
10/04/1990 ,
|
there are
|
2
|
orders.
|
For
|
10/05/1990 ,
|
there are
|
1
|
orders.
|
For
|
10/06/1990 ,
|
there are
|
2
|
orders.
|
Таблица 7.3: Комбинация текста, значений поля, и агрегатов
мы будем описывать в Главе 14. ) Как вы можете видеть, одиночный неизменный комментарий для каждой строки таблицы может быть очень полезен, но имеет ограничения. Иногда изящнее и полезнее, произвести один ком ментарий для всего вывода в целом, или производить свой собственный комментарии для каждой строки.
Различные программы использующие SQL часто обеспечивают специальные средства типа генератора отчетов( например Report Writer), которые разработаны чтобы форматировать и совершенствовать вывод. Вложенный SQL может также эксплуатировать возможности того языка в который он вложен. SQL сам по себе интересен прежде всего при операциях с данными. Вывод, по существу, это информация, и программа использующая SQL может часто использовать эту информацию и помещать ее в более привлекательную форму. Это, однако, вне сферы самой SQL.
УПОРЯДОЧЕНИЕ ВЫВОДА ПОЛЕЙ
Как мы подчеркивали, таблицы - это неупорядоченные наборы данных, и данные которе выходят из их, не обязательно появляются в какой-то определенной последовательности. SQL использует команду ORDER BY чтобы позволять вам упорядочивать ваш вывод. Эта команда упорядочивает вывод запроса согласно значениям в том или ином количестве выбранных столбцов. Многочисленые столбцы упорядочиваются один внутри другого, также как с GROUP BY, и вы можете определять возрастание (ASC ) или убывание (DESC ) для каждого столбца. По умолчанию установлено - возростание. Давайте рассмотрим нашу таблицу порядка приводимую в порядок с помощью номера заказчика (обратите внимание на значения в cnum столбце):
Читать дальше