#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 равен нулю.
Объедините результаты обоих запросов вместе.