Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1

ТЕМА: Ветвление в Oracle

Ветвление в Oracle 29 июнь 2011 23:57 #797

  • Semenich
  • Semenich аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 12
  • Спасибо получено: 0
Есть запрос, как правильно выполнить ветвление в таком запросе?

SQL:
select
t1.id,
( if (t1.flag=2) then
(selec t2. name from table2 t2 where t2.type1=t1.id)
else
(selec t2. name from table2 t2 where t2.type2=t1.id and t2.s is not null)
) as name_type
f rom
table1 t1

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ветвление в Oracle 30 июнь 2011 00:00 #798

  • Alex
  • Alex аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 18
  • Спасибо получено: 0
Вот так:

select
t1.id,
decode (
t1.flag,
2,
( select t2. name from table2 t2 where t2. type1=t1.id),
(select t2. name from table2 t2 where t2. type2=t1.id and t2.s is not null)
) as name_type
from table1 t1

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ветвление в Oracle 15 июль 2011 17:19 #1935

  • kiet
  • kiet аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 25
  • Спасибо получено: 0
эти 2 строчки будут лишние ( select t2. name from table2 t2 where t2. type1=t1.id),
(select t2. name from table2 t2 where t2. type2=t1.id and t2.s is not null)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Ветвление в Oracle 12 авг 2011 08:53 #3203

Semenich пишет: Есть запрос, как правильно выполнить ветвление в таком запросе?

SQL:
select
t1.id,
( if (t1.flag=2) then
(selec t2. name from table2 t2 where t2.type1=t1.id)
else
(selec t2. name from table2 t2 where t2.type2=t1.id and t2.s is not null)
) as name_type
f rom
table1 t1

вот так

Вот так:

select
t1.id,

( select t2. name from table2 t2 where t2. type1=t1.id),
(select t2. name from table2 t2 where t2. type2=t1.id and t2.s is not null)
) as name_type
from table1 t1

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1