Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Дерево / 2 сообщений из 2, страница 1 из 1
09.04.2009, 20:59
    #35923787
dealko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево
Есть табличка tree
В ней поля
ID - идентификатор узла
OWNERID - узел более высокого уровня
NAME - текстовое значение

Можно как-то одним оператором для узла построить подробное название с указанием всех предков ?

Например для таблички:
1 NULL Первый уровень
2 1 Второй уровень
3 2 Третий уровень

Сделать запрос, у которого на входе 3 а на выходе:
\Первый уровень\Второй уровень\Третий уровень

На функции в проекте табу наложено...

Заранее спасибо
...
Рейтинг: 0 / 0
10.04.2009, 09:57
    #35924184
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t(id, ownerid, name) as (values
  ( 1 , NULL, 'Первый уровень')
, ( 2 ,  1 , 'Второй уровень')
, ( 3 ,  2 , 'Третий уровень')
)
, a (lvl, id, ownerid, name) as (
select  1 , id, ownerid, cast(name as varchar( 4000 ))
from t 
where id= 3 
  union all
select a.lvl+ 1 , t.id, t.ownerid, t.name||'\'||a.name
from a, t
where t.id=a.ownerid
)
select a.name 
from a
order by lvl desc
fetch first  1  row only
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Дерево / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]