3,491
社区成员
发帖
与我相关
我的任务
分享
/*假设表为A,字段为:节点 z_id;父节点:fa_id*/
select lpad('+',level,' ')||ename from A
connect by prior z_id = fa_id
start with fa_id is null;
[/quote]
改正一下,开始理解错了
/*假设表为A,字段为:节点 z_id;父节点:fa_id*/
select z_id,decode(sign(length(z_id)-4),0,null,
decode(sign(length(z_id-6)),0,substr(z_id,1,4),1,substr(z_id,1,6))) fa_id from A;
具体需要截取几位可以在substr里修改,也可以增加decode里边的内容
/*假设表为A,字段为:节点 z_id;父节点:fa_id*/
select lpad('+',level,' ')||ename from A
connect by prior z_id = fa_id
start with fa_id is null;