开博了。其实之前有的,只是不在pub上,最近实在忍受不了msn共享空间了。
请教start with ......connect by prior .....用法
上一篇 / 下一篇 2007-11-09 10:26:13 / 个人分类:Oracle资料与实践
查看( 439 ) /
评论( 15 )
TAG:
-
oracle_worker发布于2007-11-09 10:35:25
-
Start with 开始位置,connect by prior 子节点=父节点;
必须使用prior引用父行
sys_connect_by_path(userid, ',')userid, 之间用什么符号分割
With x As (
SELECT 'test_1' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_1' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_2' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_2' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_3' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_3' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_4' NAME, 'test1' userid FROM dual )
select Name, ltrim(max(sys_connect_by_path(userid, ',')), ',') userid
from (select Name,
userid,
row_number() over(partition by Name order by userid) rn
from x)
start with rn = 1
connect by rn - 1 = prior rn
And Name = Prior Name
group by Name
order by Name;
-
foxmile
发布于2007-11-09 10:52:01
-
And Name = Prior Name
我注释之后并没有出现不同的结果,请告知这里这个条件是什么作用。谢谢!
-
oracle_worker发布于2007-11-09 10:55:35
-
其实 起主要作用的是rn - 1 = prior rn ,
Name = Prior Name可要可不要。
-
foxmile
发布于2007-11-09 11:01:23
-
多谢兄弟,学习了。呵呵,有空交流。
-
jack198409
发布于2007-11-09 11:19:01
-
學習...........
希望我能和你們一樣強!
-
foxmile
发布于2007-11-09 11:25:08
-
学习啊。OCP doc里面的东西真的挺好的。正在学习中
-
zhouwf0726
发布于2007-11-09 11:53:14
-
http://www.itpub.net/620427,1.html

-
jack198409
发布于2007-11-09 13:43:36
-
請問哈兄弟門OCP doc的全稱是什么啊?
我也好學習哈啊!
-
foxmile
发布于2007-11-09 20:15:47
-
OCP doc就是oracle认证的英文文档,里面的知识很全。
QUOTE:
最初由 jack198409 发布
[B]請問哈兄弟門OCP doc的全稱是什么啊?
我也好學習哈啊! [/B]
-
foxmile
发布于2007-11-09 20:16:09
-
多谢啦。我已经在看了。
QUOTE:
最初由 zhouwf0726 发布
[B]http://www.itpub.net/620427,1.html
[/B]
-
SingleLove
发布于2007-11-09 22:55:16
-
路过学习
-
bluelliant发布于2007-11-10 09:03:23
-
QUOTE:
最初由 oracle_worker 发布
Note: In a hierarchical query, do not specify either ORDER BY or
[B]Start with 开始位置,connect by prior 子节点=父节点;
必须使用prior引用父行
sys_connect_by_path(userid, ',')userid, 之间用什么符号分割
With x As (
SELECT 'test_1' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_1' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_2' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_2' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_3' NAME, 'test1' userid FROM dual UNION ALL
SELECT 'test_3' NAME, 'test2' userid FROM dual UNION ALL
SELECT 'test_4' NAME, 'test1' userid FROM dual )
select Name, ltrim(max(sys_connect_by_path(userid, ',')), ',') userid
from (select Name,
userid,
row_number() over(partition by Name order by userid) rn
from x)
start with rn = 1
connect by rn - 1 = prior rn
And Name = Prior Name
group by Name
order by Name; [/B]
GROUP BY, as they will destroy the hierarchical order of the CONNECT
BY results. If you want to order rows of siblings of the same parent,
then use the ORDER SIBLINGS BY clause.
-
oracle_worker发布于2007-11-10 11:07:40
-
QUOTE:
最初由 bluelliant 发布
学习了,你能举个列子吗?谢谢!
[B]
Note: In a hierarchical query, do not specify either ORDER BY or
GROUP BY, as they will destroy the hierarchical order of the CONNECT
BY results. If you want to order rows of siblings of the same parent,
then use the ORDER SIBLINGS BY clause. [/B]
-
zhouwf0726
发布于2007-11-10 12:00:21
-
http://zhouwf0726.itpub.net/post/9689/213249

-
jack198409
发布于2007-11-10 14:13:26
-
哪里可以搞到OCP doc?
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | |||||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
| 18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
| 25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
我的存档
数据统计
- 访问量: 7246
- 日志数: 148
- 图片数: 1
- 建立时间: 2007-12-10
- 更新时间: 2008-12-17
