Хранимый в Oracle процесс

#stored-procedures

Вопрос:

Я пишу хранимую процедуру. Пожалуйста, дайте мне знать, есть ли какой-либо хороший синтаксис для этого:

У меня есть три таблицы: таблица 1, таблица 2, таблица 3.
Я хочу соединить таблицу 1 с таблицей 2, но если первичный ключ в таблице 2 равен нулю, то я хочу соединить таблицу 1 с таблицей 3.

Есть ли способ условно сделать это в хранимой процедуре Oracle?

Фрагмент кода выглядит примерно так:

выберите t1.col1,t2.colABC
из
таблицы 1 t1, таблицы 2 t2, таблицы 3 t3
, где
t1.colYear=Var_year
И
t2.colID= » выберите (если t1.colGroup !=0 ,выберите t1.colGroup.
еще t3.colGroup)

ТИА
-Ньюби

Ответ №1:

Создайте два запроса.

Первый запрос должен объединить таблицы 1 и 2 только в том случае, если первичный ключ в таблице 2 не равен нулю.

Второй запрос должен объединить таблицу 1 с таблицей 2 и таблицей 3 только в том случае, если первичный ключ в таблице 2 равен нулю.

Объедините результаты обоих запросов вместе.