树形结构算法怎样实现?大家来看看。 select lpad(id,level,'*') from test_tree start with parent=0 connect by prior id=parent; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 10:43:09 SQL> select lpad(' ',level,'*')||id from10:43:28 2 test_tree start with id=1 connect by prior id=parent;LPAD('',LEVEL,'*')||ID-------------------------------------------------------------------------------- 1* 2** 3*** 18**** 19***** 20** 4** 5** 6** 7* 8LPAD('',LEVEL,'*')||ID--------------------------------------------------------------------------------** 9*** 12*** 15** 10*** 13*** 16** 11*** 14*** 17已选择20行。已用时间: 00: 00: 00.4710:43:33 SQL> 10:49:23 SQL> select lpad(id,level+length(id)-1,'*') from test_tree start with parent=0 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*')----------------------------------------------------------------------------------------------------1*2**3***18****19*****20**4**5**6**7*8**9***12***15**10***13***16**11***14***17已选择20行。 10:47:08 SQL> select lpad(id,level+length(id)-1,'*') from 10:47:39 2 test_tree start with id=1 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*')-----------------------------------------------------------------------------1*2**3***18****19*****20**4**5**6**7*8LPAD(ID,LEVEL+LENGTH(ID)-1,'*')-----------------------------------------------------------------------------**9***12***15**10***13***16**11***14***17已选择20行。已用时间: 00: 00: 00.94 非常感谢上面两位。SQL> select id,parent from ttree; ID PARENT------ ---------- 1 0 2 1 3 2 4 2 5 2 6 2 7 2 8 1 9 8 10 8 11 8 12 9 13 10 14 11 15 9 16 10 17 11 18 3 19 18 20 19 ID PARENT------ ---------- 21 0 22 0 23 46 24 21 25 22 26 19 27 22 28 21 30 19 31 24 32 31 33 32 34 33 35 34 36 35 37 36 38 37 39 36 40 38 41 25 42 26 ID PARENT------ ---------- 43 22 44 23 45 22 46 23 47 2246 rows selected回复人: zmgowin(隐者(龙祖宗)) ( ) 信誉:100 2004-10-20 10:47:00 得分: 0 select lpad(id,level+length(id)-1,'*') from test_tree start with parent=0 connect by prior id=parent;结果如下:SQL> select lpad(id,level+length(id)-1,'*') from test_tree start with 2 parent=0 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*'--------------------------------------1*2**3***18****19*****20*****26******42*****30**4**5**6**7*8**9***12***15**10***13***16LPAD(ID,LEVEL+LENGTH(ID)-1,'*'---------------------------------------**11***14***1721*24**31***32****33*****34******35*******36********37*********38**********40********39*2822*25**41*27*43LPAD(ID,LEVEL+LENGTH(ID)-1,'*'---------------------------------------------*45*4743 rows selected以上达到预期要求。回复人: bzszp(SongZip) ( ) 信誉:149 2004-10-20 10:49:00 得分: 0 10:47:08 SQL> select lpad(id,level+length(id)-1,'*') from 10:47:39 2 test_tree start with id=1 connect by prior id=parent;结果如下:SQL> select lpad(id,level+length(id)-1,'*') from 2 ttree start with id=1 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*'-------------------------------------------1*2**3***18****19*****20*****30*****26******42**4**5**6**7*8**9***12***15**10***13***16LPAD(ID,LEVEL+LENGTH(ID)-1,'*'---------------------------------------**11***14***1723 rows selected如果将with id=1换成parent=0也能完全得到最终要求的结果。再次感谢:回复人: zmgowin(隐者(龙祖宗))与回复人: bzszp(SongZip)。 如何获取自某个时间以来改动过的记录? 是否有学习ORaCle最简洁的步骤 PL/SQl怎么测试一个sql语句的性能? 大量insert into ,cpu 占高 问题,请教 oracledbconsoleorcl 不能启动 pb中如何调用oracle存储过程 去掉前面的空格如何写 如何用for wait?锁定一定的数据? 紧急求救,oracle临时表空间快慢了,怎么办??!在线等待回答??! 如何建立数据包 OracleOraHome92TNSListener服务启动不了!! oracle8中在多线程服务器上无初始连接字符串,如何调用连接?高手请进
10:43:28 2 test_tree start with id=1 connect by prior id=parent;LPAD('',LEVEL,'*')||ID
--------------------------------------------------------------------------------
1
* 2
** 3
*** 18
**** 19
***** 20
** 4
** 5
** 6
** 7
* 8LPAD('',LEVEL,'*')||ID
--------------------------------------------------------------------------------
** 9
*** 12
*** 15
** 10
*** 13
*** 16
** 11
*** 14
*** 17已选择20行。已用时间: 00: 00: 00.47
10:43:33 SQL>
arent=0 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*')
--------------------------------------------------------------------------------
--------------------
1
*2
**3
***18
****19
*****20
**4
**5
**6
**7
*8
**9
***12
***15
**10
***13
***16
**11
***14
***17已选择20行。
10:47:39 2 test_tree start with id=1 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*')
-----------------------------------------------------------------------------
1
*2
**3
***18
****19
*****20
**4
**5
**6
**7
*8LPAD(ID,LEVEL+LENGTH(ID)-1,'*')
-----------------------------------------------------------------------------
**9
***12
***15
**10
***13
***16
**11
***14
***17已选择20行。已用时间: 00: 00: 00.94
SQL> select id,parent from ttree; ID PARENT
------ ----------
1 0
2 1
3 2
4 2
5 2
6 2
7 2
8 1
9 8
10 8
11 8
12 9
13 10
14 11
15 9
16 10
17 11
18 3
19 18
20 19 ID PARENT
------ ----------
21 0
22 0
23 46
24 21
25 22
26 19
27 22
28 21
30 19
31 24
32 31
33 32
34 33
35 34
36 35
37 36
38 37
39 36
40 38
41 25
42 26 ID PARENT
------ ----------
43 22
44 23
45 22
46 23
47 2246 rows selected回复人: zmgowin(隐者(龙祖宗)) ( ) 信誉:100 2004-10-20 10:47:00 得分: 0
select lpad(id,level+length(id)-1,'*') from test_tree start with
parent=0 connect by prior id=parent;
结果如下:
SQL> select lpad(id,level+length(id)-1,'*') from test_tree start with
2 parent=0 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*'
--------------------------------------
1
*2
**3
***18
****19
*****20
*****26
******42
*****30
**4
**5
**6
**7
*8
**9
***12
***15
**10
***13
***16LPAD(ID,LEVEL+LENGTH(ID)-1,'*'
---------------------------------------
**11
***14
***17
21
*24
**31
***32
****33
*****34
******35
*******36
********37
*********38
**********40
********39
*28
22
*25
**41
*27
*43LPAD(ID,LEVEL+LENGTH(ID)-1,'*'
---------------------------------------------
*45
*4743 rows selected以上达到预期要求。回复人: bzszp(SongZip) ( ) 信誉:149 2004-10-20 10:49:00 得分: 0
10:47:08 SQL> select lpad(id,level+length(id)-1,'*') from
10:47:39 2 test_tree start with id=1 connect by prior id=parent;
结果如下:
SQL> select lpad(id,level+length(id)-1,'*') from
2 ttree start with id=1 connect by prior id=parent;LPAD(ID,LEVEL+LENGTH(ID)-1,'*'
-------------------------------------------
1
*2
**3
***18
****19
*****20
*****30
*****26
******42
**4
**5
**6
**7
*8
**9
***12
***15
**10
***13
***16LPAD(ID,LEVEL+LENGTH(ID)-1,'*'
---------------------------------------
**11
***14
***1723 rows selected如果将with id=1换成parent=0也能完全得到最终要求的结果。再次感谢:回复人: zmgowin(隐者(龙祖宗))与回复人: bzszp(SongZip)。