我有一张包含以下数据的表格
Col1 Col2
---------------
P null
C1 P
C2 P
C11 C1
C12 C1
C21 C2
Col2表示父列。
我想以树形式显示数据
P
|_C1
| |_C11
| |_C12
|_C2
|_C21
是否有任何工具/程序以树格式显示数据库记录?
答案 0 :(得分: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;