WHERE E.id_otdel = S.id_otdel AND INITCAP(E.fam_cotr = ‘Кошкина’);
Пример 4: Вывод фамилии, названия региона и процента комиссионных всех служащих, получающих комиссионные.
SELECT E.fam_cotr, R. name “Назван региона”, S.commission_pct
FROM Emp E, region R, sdelki S
WHERE E.id_cotr = R.id_cotr
AND R.id_cotr = S.id
AND S.commission_pct>0;
Внешние соединения.
Внешнее соединение используется для выборки строк, не удовлетворяющих обычным условиям соединения. Оператором внешнего соединения является знак плюс, заключенный в скобки (+). Этот оператор указывается с той стороны, где нет значения, по которому можно было бы произвести соединение.
Синтаксис
SELECT таблица.столбец, таблица.столбец
FROM таблица1, таблица2
WHERE таблица1.столбец1 = таблица2.столбец2(+);
где:
таблица1.столбец1 = таблица2.столбец2 - условие, соединяющее таблицы (или задающее их отношение)
(+) - символ внешнего соединения; может использоваться на любой стороне условия в предложении WHERE. (+) указывается после имени таблицы, в которой нет соответствующих строк
Оператор внешнего соединения может использоваться только на одной стороне выражения, там, где недостаточно информации. Он возвращает строки таблицы, для которых в другой таблице нет соответствующей строки.
Условие, предполагающее внешнее соединение, не может использовать оператор IN и быть связанным с другими условиями с помощью оператора OR.
Пример 5: Вывод для каждого клиента его наименования, а также фамилии и идентификационного номера торгового представителя. В список включаются наименования даже тех клиентов, которые не имеют торгового представителя.
SELECT K.name, K id_klient, P.name_predstav
FROM Klienti K, Predstav P
WHERE K.id_klient = P.id_predstav (+);
Соединение таблицы с собой.
Рекурсивное соединение возникает в том случае, когда строки таблицы соединяются со строками этой же самой таблицы. При этом в предложении FROM наличие двух таблиц имитируется путем использования двух различных псевдонимов таблицы.
Пример 6: Вывод имен сотрудников и их менеджеров.
SELECT worker.last_name|| ‘works for’|| manager.last_name
FROM s_emp worker, s_emp manager
WHERE worker.manager_id==manager.id;
Тема 11: Создание, изменение и удаление последовательностей.
Последовательность. Создание последовательности.
Изменение и удаление последовательности.
Генерация значений последовательности.