急急,关于多条记录合并?

[复制链接]
查看11 | 回复9 | 2006-4-17 13:46:34 | 显示全部楼层 |阅读模式
如表TEST (A1,A2, ID)
ID,A1,A2
--------------------
001,A,B
001,C,D
002,E,F
002,G,H
我要生成一个VIEW,如下: 就是将ID相同的合并成一条记录
ID, A4
--------------------
001,A,B,C,D
002,E,F,G,H
请问如何写这个VIEW?
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
看看这个吧^_^
http://www.*****.org/viewthread.php?tid=32049
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
哪个连接不行
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
din
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
http://blog.itpub.net/post/965/6849
希望对你有所帮助
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
写个函数吧,方便点
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
关注
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
antfish:
如果有多个列要合并话,好象不太方便
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
按照你的意思是纵向记录转换为横向记录,也就是纵向表和横向表的相互转换吧。
这需要纵向表 Test 多增加一个附加的字段才行,这个字段用来描述纵向表中的记录应该
是横向表的第几个字段,以下是 SQL。
(我这里的转换还多需要一个字段才能转换,还请高手们指教有没有更好的方法直接就可以转换的。)
(另外,发帖子的时候,每行以空格打头的都给删掉了,影响了可读性)
create table test(
ID
varchar2(5),
a1
varchar2(5),
a2
varchar2(5),
a3
varchar2(5)
);

IDA1A2A3
----- ----- ----- -----
001 A B 1
001 C D 2
002 E F 1
002 G H 2
SQL> select
2ID,
3max( decode( a3, '1', a1, null ) ) a1,
4max( decode( a3, '1', a2, null ) ) a2,
5max( decode( a3, '2', a1, null ) ) a3,
6max( decode( a3, '2', a2, null ) ) a4
7from test
8group by ID;
IDA1A2A3A4
----- ----- ----- ----- -----
001 A B C D
002 E F G H
回复

使用道具 举报

千问 | 2006-4-17 13:46:34 | 显示全部楼层
最初由 msnch 发布
[B]antfish:
如果有多个列要合并话,好象不太方便 [/B]

现在只是考虑一种主键固定行数据的情况
如果要是不定行的话,考虑用函数或者存储过程实现
现在没来得及写
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行