ПОМЕЩЕНИЕ ТЕКСТА В ВАШЕМ ВЫВОДЕ ЗАПРОСА
Символ 'A', когда ничего не значит сам по себе, - является константой, такой например как число 1. Вы можете
вставлять константы в предложение SELECT запроса, включая и текст. Однако символьные константы, в отличие
от числовых констант, не могут использоваться в выражениях. Вы можете иметь выражение 1 + 2 в вашем предложении
SELECT, но вы не можете использовать выражение типа 'A' + 'B'; это приемлемо только если мы имеем в виду
что 'A' и 'B' это просто буквы, а не переменные и не символы. Тем ни менее, возможность вставлять текст
в вывод ваших запросов очень удобная штука. Вы можете усовершенствовать предыдущий пример представив комиссионные
как проценты со знаком процента (%). Это даст вам возможность помещать в вывод такие единицы как символы и
комментарии, как например в следующем примере ( вывод показывается в Рисунке 7.2 )
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, который будет описан ниже).
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: Комбинация текста, значений поля, и агрегатов
Как вы можете видеть, одиночный неизменный комментарий для каждой строки таблицы может быть очень полезен,
но имеет ограничения. Иногда изящнее и полезнее, произвести один комментарий для всего вывода в целом, или
производить свой собственный комментарии для каждой строки. Различные программы использующие SQL часто
обеспечивают специальные средства типа генератора отчетов( например Report Writer), которые разработаны
чтобы форматировать и совершенствовать вывод. Вложенный SQL может также эксплуатировать возможности того
языка в который он вложен. SQL сам по себе интересен прежде всего при операциях с данными. Вывод, по существу,
это информация, и программа использующая SQL может часто использовать эту информацию и помещать ее в более
привлекательную форму. Это, однако, вне сферы самой SQL.