我有一个表,是树状结构
parent child child_type
------------------------
p1 c1 normal
p1 c2 normal
c2 s1 special
c2 s2 special
s1 n1 normal结构如下
p1
┣ c1
┗ c2
┣ s1
┃ ┗ n1
┗s2我想要下面的查询结果
parent child special_str
-----------------------------
p1 c1
p1 c2 s1,s2说明:把子类型为SPECIAL的数据写到父级与父级的关系中,SPECIAL_STR是查询中拼出来的列
比如C2下有两个Special的数据s1和s2,c2的父级是p1,就把s1和s2拼起来写到c2和p1的关联中
需要注意的是special类型的数据的所有下层都不显示,即遇到SPECIAL类型的数据该树的这个分支就截止,如n1这个查询好难的,哪位专家有办法?
parent child child_type
------------------------
p1 c1 normal
p1 c2 normal
c2 s1 special
c2 s2 special
s1 n1 normal结构如下
p1
┣ c1
┗ c2
┣ s1
┃ ┗ n1
┗s2我想要下面的查询结果
parent child special_str
-----------------------------
p1 c1
p1 c2 s1,s2说明:把子类型为SPECIAL的数据写到父级与父级的关系中,SPECIAL_STR是查询中拼出来的列
比如C2下有两个Special的数据s1和s2,c2的父级是p1,就把s1和s2拼起来写到c2和p1的关联中
需要注意的是special类型的数据的所有下层都不显示,即遇到SPECIAL类型的数据该树的这个分支就截止,如n1这个查询好难的,哪位专家有办法?
2 select parent,child from t6
3 start with parent='p1'
4 connect by prior child=parent and child_type<>'special') a,(
5 select parent,wmsys.wm_concat(child) special_str from t6
6 where child_type='special' group by parent) b
7 where a.child=b.parent(+)
8 order by parent,child;PARENT CHILD SPECIAL_STR
---------- ---------- ---------------
p1 c1
p1 c2 s1,s2
我试了一下,wmsys.wm_concat好像在ORACLE9.2下不好使
有没有什么办法在ORACLE9下实现拼接字符串
我想把这个函数用在ORACLE9上,有办法吗?
http://valen.blog.ccidnet.com/blog-htm-do-showone-type-blog-itemid-153656-uid-51502.html
10g里面的那个function不知道怎么的,看不懂!
你还是查一下关于wmsys.wm_concat的资料吧。