194
Глава 9. Подзапросы
•
Позволяют формировать значения
для заполнения таблицы или
столбцов результирующего набора запроса.
•
Используются в блоках
select
,
from
,
where
,
having
и
order
by
запросов.
Очевидно, подзапросы – очень многогранный инструмент, поэтому не
отчаивайтесь, если при первом прочтении
главы вы поймете не все
представленные здесь принципы. Продолжайте экспериментировать
с подзапросами и вскоре обнаружите, что при написании каждого не
обычного SQLвыражения очень полезно
рассматривать возможность
использования подзапроса.
Упражнения
Эти упражнения ориентированы на проверку понимания подзапросов.
Решения приведены в приложении С.
9.1
Создайте запрос к таблице
account
, использующий условие фильтра
ции с несвязанным подзапросом к таблице
product
для
поиска всех кре
дитных счетов (
product.product_type_cd
=
'LOAN'
). Должны быть выбра
ны ID счета, код счета, ID клиента и доступный остаток.
9.2
Переработайте запрос из упражнения 9.1,
используя
связанный
подза
прос к таблице
product
для получения того же результата.
9.3
Соедините следующий запрос с таблицей
employee
, чтобы показать уро
вень квалификации каждого сотрудника:
SELECT 'trainee' name, '20040101' start_dt, '20051231' end_dt
UNION ALL
SELECT 'worker' name, '20020101' start_dt, '20031231' end_dt
UNION ALL
SELECT 'mentor' name, '20000101' start_dt, '20011231' end_dt
Дайте
подзапросу псевдоним
levels
(уровни) и включите ID сотрудни
ка, имя, фамилию и квалификацию (
levels.name
). (Совет: в условии со
единения определяйте диапазон, в
который попадает столбец
em
ployee.start_date
, с помощью условия неравенства.)
9.4
Создайте запрос к таблице
employee
для получения ID, имени и фами
лии сотрудника вместе с
названиями отдела и отделения, к которым
он приписан. Не используйте соединение таблиц.