Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Задание столбца при использовании подзапроса

Задание столбца при использовании подзапроса

Выходной столбец времени выполнения может быть задан запросом одного столбца из другой таблицы. Выходному столбцу должен быть назначен новый идентификатор, который для завершенности синтаксиса может быть отмечен необязательным ключевым словом AS (см. разд. "Наследуемые поля и алиасы столбцов"главы 21).

Вложенный запрос всегда должен иметь условие в предложении WHERE для ограничения вывода одним столбцом из одной строки (называется скалярным запросом); иначе вы увидите подобное сообщение об ошибке: "Multiple rows in singleton select" (Запрос, который должен вернуть одну строку, вернул множество строк).

Следующий запрос использует подзапрос для получения выходного столбца.

SELECT

LAST_NAME,

FIRST_NAME,

ADDRESS1,

ADDRESS2,

POSTCODE,

(SELECT START_TIME FROM ROUTES

WHERE POSTCODE = '2261' AND DOW = 'MONDAY') AS START_TIME

FROM MEMBERSHIP

WHERE POSTCODE = '2261';

Этот подзапрос указывает одно значение POSTCODE для получения значения поля START_TIME транспортного маршрута (таблица ROUTES). Столбцы POSTCODE в главном запросе и в подзапросе могут быть заменены параметрами. Чтобы сделать запрос более общим и более полезным, мы можем использовать коррелированные подзапросы.

Оглавление книги


Генерация: 1.157. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз