Страница 2 из 2

Добавлено: 27 май 2005, 12:40
mod
2Oscar

select id, director from (
select id, director from directora
where id<>director
) a
start with id=9
connect by prior director=id;

-- ЗЫ + случай ссылки друг на друга д.б. исключен...

Добавлено: 27 май 2005, 12:55
mod
Но в используемой версии (не знаю, какая), Оракле не знает этого оператора

Добавлено: 27 май 2005, 12:58
mod
2Oscar

-- Ora ver.:
select * from v$version

Re: Oracle, рекурсивные запросы(или как ето делается)

Добавлено: 01 авг 2009, 22:52
bloknot
Делается это вот так, но если быть точнее поставленному условию, то нужно убрать LEVEL и ID из запрашиваемых полей. :rolleyes:
  1. Select
  2. LEVEL-1 "нач-ов.мжд челом и текущим нач",
  3. a.id "Сам Чел",
  4. a.direktor "Директор Чела"
  5. From
  6. --заменяем id начальника на -1 если id сам себе начальник
  7. (select id,DECODE(direktor,id,-1,direktor) direktor from direktora) a
  8. --указываем направление
  9. Connect By Prior a.direktor=a.id
  10. --задаем условие с какой строки(строк) начинать строить дерево
  11. Start With a.id=9;