Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Иерархия ввверх  [new]
Tyo
Member

Откуда: Столица
Сообщений: 464
Подскажите плз, как в иерархич. таблице одним запросом получить все родительские узлы от данной точки вверх по иерархии (если это вообще возможно)?

Т.е. вот из такой примерно таблички
select ID,PARENT,NAME,LEVEL from THEWORLD
START WITH ID=1 connect by prior ID=PARENT;

ID PARENT NAME LEVEL
---------- ---------- ---------------------
1 0 Весь шарик 1
2 1 Европа 2
8 2 Нидерланды 3
9 2 Швейцария 3
10 2 Албания 3
11 2 Испания 3
3 1 Африка 2
14 3 Зимбабве 3
15 3 Бурунди 3
16 3 Лесото 3
17 3 Сомали 3
4 1 Америка 2
6 4 Северная Америка 3
22 6 США 4
23 6 Канада 4
24 6 Мексика 4


хочется получить, например, для Канады:

6 Северная Америка
4 Америка
1 Весь шарик


Заранее спасибо
20 окт 06, 13:31    [3287762]     Ответить | Цитировать Сообщить модератору
 Re: Иерархия ввверх  [new]
alf123
Guest
a tak

select ID,PARENT,NAME,LEVEL from THEWORLD
START WITH NAME='CANADA' connect by prior PARENT=ID;
20 окт 06, 13:35    [3287789]     Ответить | Цитировать Сообщить модератору
 Re: Иерархия ввверх  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
select * 
  from t
 where name != 'Канада'
 start with name = 'Канада'
connect by prior parent = id
20 окт 06, 13:36    [3287795]     Ответить | Цитировать Сообщить модератору
 Re: Иерархия ввверх  [new]
Elic
Member

Откуда:
Сообщений: 29980
Щукина Анна
 where name != 'Канада'
Лучше
where level > 1
20 окт 06, 13:40    [3287831]     Ответить | Цитировать Сообщить модератору
 Re: Иерархия ввверх  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1489
Elic
Щукина Анна
 where name != 'Канада'
Лучше
where level > 1
Согласна!
Мало ли какие там ещё "Канады" по пути на верх могут встретиться...
20 окт 06, 13:43    [3287866]     Ответить | Цитировать Сообщить модератору
 Re: Иерархия ввверх  [new]
Elic
Member

Откуда:
Сообщений: 29980
Щукина Анна
Elic
Щукина Анна
 where name != 'Канада'
Лучше
where level > 1
Согласна!
Мало ли какие там ещё "Канады" по пути на верх могут встретиться...
Не столько поэтому, а чтобы лучше отразить суть и избавиться от лишнего упоминания входных данных.
20 окт 06, 14:02    [3288026]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить