急急急急急!!求一条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语句?????
...全文
200 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
凤影 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
  • 打赏
  • 举报
回复
你好,你的这种列转行我看了,是面对小数据量的定死的一种呀,我的这个是大量数据,而且不能像例子中的英语、语文、数学,这样 写死 ,我想要个活的,就是不管怎么的数据都可以适应


不过还是谢谢你

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧