2012-02-22 3 views
0

Я имею таблицу со следующими даннымиотображения записей в виде дерева

Col1 Col2 

--------------- 

P  null 

C1  P 

C2  P 

C11 C1 

C12 C1 

C21 C2 

Стлб2 указывает на родительский столбец.

Я хочу, чтобы отобразить данные в виде дерева

P  
|_C1 
| |_C11 
| |_C12 
|_C2 
    |_C21 

Есть ли какой-либо инструмент/программа, которая отображает записи базы данных в виде дерева?

ответ

1

Если вы используете Oracle:

Попробуйте hierarchical queries. Используйте LEVEL и CONNECT_BY_ISLEAF псевдо столбцы, чтобы решить, нужно ли рисовать ведущие строки и как.

Что-то вроде этого:

SELECT CASE WHEN LEVEL = 1 
      THEN col1 
      ELSE LPAD('_' || col1, (LEVEL - 1) * 4, '| ') 
     END output 
FROM tab1 
CONNECT BY PRIOR col1 = col2 
START WITH col2 IS NULL; 
+0

Нет, он не будет работать, как ожидалось. Вертикальные линии будут рисоваться, даже если это не необходимо, например. когда нет другого брата на одном уровне, но есть два уровня вверх. –

+0

да, моя база данных Oracle – HanuAthena

Смежные вопросы