ИСПОЛЬЗОВАНИЕ СТРОК И ВЫРАЖЕНИЙ С UNION

Иногда, вы можете вставлять константы и выражения в предложения SELECT используемые с UNION. Это не следует строго указаниям ANSI, но это полезная и необычно используемая возможность. Константы и выражения которые вы используете, должны встречать совместимые стандарты которые мы выделяли ранее. Эта свойство полезно, например, чтобы устанавливать комментарии указывающие какой запрос вывел данную строку. Предположим что вы должны сделать отчет о том, какие продавцы производят наибольшие и наименьшие порядки по датам. Мы можем объединить два запроса, вставив туда текст чтобы различать вывод для каждого из них.
SELECT a.snum, sname, onum, 'Highest on', odate
FROM (Salespeople a, Orders b
WHERE a.snum = b.snum AND b.amt = ( SELECT MAX (amt) FROM Orders c WHERE c.odate = b.odate )
UNION SELECT a.snum, (sname, (onum ' Lowest on', odate FROM ( Salespeople a, Orders b WHERE a.snum = b.snum AND b.amt = ( SELECT MIN (amt) FROM Orders c WHERE c.odate = b.odate );
Вывод из этой команды показывается в Рисунке 14.4. Мы должны были добавить дополнительный пробел в строку 'Lowest on', чтобы сделать ее совпадающей по длине со строкой 'Highest on'. Обратите внимание что Peel выбран при наличии и самого высокого и самого низкого ( фактически он единственый ) порядка на 5 Октября. Так как вставляемые строки двух этих запросов различны, строки не будут устранены как дубликаты.

1001 Peel 3008 Highest on 10/05/1990
1001 Peel 3008 Lowest on 10/05/1990
1001 Peel 3011 Highest on 10/06/1990
1002 Serres 3005 Highest on 10/03/1990
1002 Serres 3007 Lowest on 10/04/1990
1002 Serres 3010 Lowest on 10/06/1990
1003 Axelrod 3009 Highest on 10/04/1990
1007 Rifkin 3001 Lowest on 10/03/1990

Рисунок 14.4: Выбор наивысших и наинизших порядков, определяемых с помощью строк