Скачиваний:
25
Добавлен:
01.04.2014
Размер:
761.34 Кб
Скачать

Помещение текста в вашем выводе запроса

Символ 'A', когда ничего не значит сам по себе, - является константой,

такой например как число 1.

Вы можете вставлять константы в предложение SELECT запроса, включая

и текст. Однако символьные константы, в отличие от числовых констант,

не могут использоваться в выражениях. Вы можете иметь выражение 1 + 2

в вашем предложении SELECT, но вы не можете использовать выражение

типа 'A' + 'B'; это приемлемо только если мы имеем в виду что 'A' и 'B' это

просто буквы, а не переменные и не символы.

Тем ни менее, возможность вставлять текст в вывод ваших запросов очень

удобная штука.

Вы можете усовершенствовать предыдущий пример представив комиссион-

ные как проценты со знаком процента (%). Это даст вам возможность помещать

в вывод такие единицы как символы и комментарии, как например в следую-

78 Понимание sql

______________________________________________________________________

ГЛ. 7

щем примере ( вывод показывается в Рисунке 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, который

ФОРМАТИРОВАНИЕ ВЫВОДОВ ЗАПРОСОВ 79

______________________________________________________________________

=============== 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 чтобы

позволять вам упорядочивать ваш вывод. Эта команда упорядочивает вывод

Соседние файлы в папке ПОНИМАНИЕ SQL