急急急急急!!求一条sql语句????

qiang200813 2007-09-19 10:17:53
表名 test
其中test_a1,test_a2,test_a3字段名
test_a1 test_a12 test_a3
ss dd ff
sss ddd fff
s b v
s g h
s y
用一条sql使结果显示为
test_a1 test_a12 test_a3
ss dd ff
sss ddd fff
s b,g,t v,h,y
求一条sql语句?????
...全文
138 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
凤影 2007-09-20
这两天都是这问题,楼上赚爽了
回复
kinglht 2007-09-19
楼主看看我的blog吧,把纵向记录横向显示的问题,和你的差不多,参考一下:
http://blog.csdn.net/kinglht
回复
jdsnhan 2007-09-19
看看这个是不是你想要的。

SQL> select * from a;

I NAM
- ---
1 aa
1 bb
1 cc
2 xx
2 yy
3 zz
3 mm

select max(substr((sys_connect_by_path(name,',')),2)) cola
from (
select id,name,
rownum rnum,
row_number() over(partition by id order by id) rn1
from a
)
start with rn1=1
connect by rnum-1=prior rnum
group by id
;

--------------------------------------------------------------------------------

aa,bb,cc
xx,yy
zz,mm


回复
jerome_michelle 2007-09-19
我觉得主要是解决这个问题,不在于通过什么途径

就一条sql语句在oracle中没有办法做到,需要通过过程来处理。

如果是这样还不如通过上层的程序处理来得简单。
回复
hebo2005 2007-09-19
这种要用存储过程来实现了,根据test_a1的纪录数,重新组合test_a2,test_a3的内容,最后再显示出来,因为你这个里面test_a1重复的纪录数是不定的
回复
qiang200813 2007-09-19
你好,你的这种列转行我看了,是面对小数据量的定死的一种呀,我的这个是大量数据,而且不能像例子中的英语、语文、数学,这样 写死 ,我想要个活的,就是不管怎么的数据都可以适应


不过还是谢谢你
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2007-09-19 10:17
社区公告
暂无公告