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

Откуда: Москва
Сообщений: 955
Ниже приведены 2 варианта построения полного дерева для каждого элемента:
with t as (
	select 1	id, null	parent_id, '/1'		name	from dual union all
	select 2	id, 1		parent_id, '/1/2'	name	from dual union all
	select 3	id, 1		parent_id, '/1/3'	name	from dual union all
	select 4	id, 3		parent_id, '/1/3/4'	name	from dual union all
	select 5	id, 3		parent_id, '/1/3/5'	name	from dual union all
	select 6	id, 4		parent_id, '/1/3/4/6'	name	from dual union all
	select 7	id, 2		parent_id, '/1/7'	name	from dual union all
	select 8	id, 3		parent_id, '/1/8'	name	from dual
	)

select id, parent_id, name, sys_connect_by_path(id,'/') pth
from t
connect by parent_id=prior id
start with parent_id is null
order by id

with t as (
	select 1	id, null	parent_id, '/1'		name	from dual union all
	select 2	id, 1		parent_id, '/1/2'	name	from dual union all
	select 3	id, 1		parent_id, '/1/3'	name	from dual union all
	select 4	id, 3		parent_id, '/1/3/4'	name	from dual union all
	select 5	id, 3		parent_id, '/1/3/5'	name	from dual union all
	select 6	id, 4		parent_id, '/1/3/4/6'	name	from dual union all
	select 7	id, 2		parent_id, '/1/7'	name	from dual union all
	select 8	id, 3		parent_id, '/1/8'	name	from dual
	)

select id, parent_id, name, max(sys_connect_by_path(id,'/')) keep(dense_rank first order by level desc) pth
from t
connect by parent_id=prior id
group by id, parent_id, name
order by id


Какой из них лучше использовать, и являются ли эти запросы тождественно равными по результату?
19 окт 12, 16:17    [13347817]     Ответить | Цитировать Сообщить модератору
 Re: Иерархический запрос, построение полного дерева  [new]
-2-
Member

Откуда:
Сообщений: 15330
publexus
Какой из них лучше использовать
group по уникальным полям ничего не меняет.
19 окт 12, 16:31    [13347923]     Ответить | Цитировать Сообщить модератору
 Re: Иерархический запрос, построение полного дерева  [new]
publexus
Member

Откуда: Москва
Сообщений: 955
-2-
publexus
Какой из них лучше использовать
group по уникальным полям ничего не меняет.

В данном случае group как раз таки не по уникальным полям.
22 окт 12, 09:14    [13354444]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить