Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Реентерабельные запросы UNION
Реентерабельные запросы UNION
Возможно обращение к реентерабельной технике для создания объединяющего запроса, который извлекает несколько поднаборов из одной таблицы. Алиасы таблиц требуются в предложениях FROM, но ссылки на колонки не обязательно должны быть полностью специфицированы. Возвращаясь к нашей таблице CURRENT_TITLES, предположим, что мы хотим получить список заголовков книг в зависимости от цены. Реентерабельный запрос должен выглядеть приблизительно следующим образом:
SELECT
ID,
TITLE,
CAST ('UNDER $20' AS VARCHAR(IO)) AS RANGE,
CAST (AUTHOR_LAST_NAME || ', ' || AUTHOR_FIRST_NAMES AS VARCHAR (50) )
AS AUTHOR,
EDITION,
LIST_PRICE
FROM CURRENT_TITLES CT1
WHERE LIST_PRICE < 20.00
UNION SELECT
ID,
TITLE,
CAST ('UNDER $40' AS VARCHAR(IO),
CAST (AUTHOR_LAST_NAME || ', ' || AUTHOR_FIRST_NAMES AS VARCHAR(50) ) ,
EDITION,
LIST_PRICE
FROM CURRENT_IITLES CT2
WHERE LIST_PRICE >= 20.00 AND LIST_PRICE < 40.00
UNION SELECT
ID,
TITLE,
CAST ('$40 PLUS' AS VARCHAR(IO) ) ,
CAST (AUTHOR_LAST_NAME || ', ' || AUTHOR_FIRST_NAMES AS VARCHAR(50) ) ,
EDITION,
LIST_PRICE
FROM CURRENT_TITLES CT3
WHERE LIST PRICE >= 40.00;
- Виды многотабличных запросов
- Соединения
- Подзапросы
- Запросы UNION
- Соединения
- Внутреннее соединение
- Внешние соединения
- Перекрестные соединения
- Естественные соединения
- Двусмысленность в запросах JOIN
- Алиасы таблиц
- Внутренний курсор
- Реентерабельные соединения
- Подзапросы
- Задание столбца при использовании подзапроса
- Поиск с использованием подзапроса
- Добавление данных с использованием подзапроса с соединениями
- Оператор UNION
- Наборы, совместимые для объединения
- Использование столбцов времени выполнения в объединениях
- Условия поиска и упорядочивания
- Реентерабельные запросы UNION
- UNION ALL
- Темы оптимизации: планы запросов и оптимизатор