咨询一个问题:比如我的表结构和数据如下:
ID CODE TEXT PARENT_ID
1 1 单位 0
2 2 子单位1 1
3 3 子单位2 2
子父节点依赖ID = PARENT_ID关联,我想实现查询出的结果如下:
1 单位 2 子单位1 3 子单位2
即若单位有5层,则都显示在一行中,依照层次代码和汉字来显示。不知道怎么实现,希望高手帮忙!
多谢多谢
ID CODE TEXT PARENT_ID
1 1 单位 0
2 2 子单位1 1
3 3 子单位2 2
子父节点依赖ID = PARENT_ID关联,我想实现查询出的结果如下:
1 单位 2 子单位1 3 子单位2
即若单位有5层,则都显示在一行中,依照层次代码和汉字来显示。不知道怎么实现,希望高手帮忙!
多谢多谢
解决方案 »
- oracle导入dmp时出现错误
- 历史数据的处理让人头疼
- 存储过程的问题(急,在线等)
- 同样的sql语句 oracle很慢,sql server 2000非常快,涉及到视图
- 写一个触发器(oracle)
- 在同一块磁盘上作分区表有意义么?
- EXP-00008: 遇到 ORACLE 错误 376 ,如何处理。
- 用OEM管理数据库,在连接的时候出现的错误:“...:TNS:没有监听器” 怎么解决?谢谢
- 在笔记本(p4,512m内存,40g硬盘)上装载window2000,ORACLE8i,php,apache最多能带几台客户端
- T_3.senkogp_cd(+) = '01' 甚麽意思?
- 用游标SELECT2个表的时候2个表中有相同列名用ROWTYPE怎么准确取出?
- 关于取数据的问题,情况比较紧急,请各位帮个忙
ID CODE TEXT PARENT_ID
---------- ---------- ---------- ----------
1 1 单位 0
2 2 子单位1 1
3 3 子单位2 1
4 4 子单位3 2那转换后的结构是怎样呢?
START WITH PARENT_ID = '0'
CONNECT BY PRIOR ID=PARENT_ID
从末梢往树ROOT递归SELECT ID,CODE,TEXT,PARENT_ID FROM TABLE t
START WITH PARENT_ID = '4'
CONNECT BY PRIOR PARENT_ID=ID
http://topic.csdn.net/u/20080506/10/6a32ded4-0b37-456c-8fd6-574c88233f61.html
INSERT INTO TEST VALUES(1,1,'单位',0);
INSERT INTO TEST VALUES(2,2,'子单位1',1);
INSERT INTO TEST VALUES(3,3,'子单位2',2);
INSERT INTO TEST VALUES(4,4,'子单位3',3);
INSERT INTO TEST VALUES(5,5,'子单位4',4);
COMMIT;SELECT CONNECT_BY_ISLEAF ISLEAF, SYS_CONNECT_BY_PATH(TEXT,',') TEXT
FROM TEST A
WHERE CONNECT_BY_ISLEAF=1
START WITH PARENT_ID=0
CONNECT BY PRIOR A.ID=A.PARENT_ID
;输出:
ISLEAF TEXT
---------- --------------------------------------------------------------------------------
1 ,单位,子单位1,子单位2,子单位3,子单位4你自己去掉','就OK了如果需要DB2算法,再开口好了!