您的位置:首页 > 数据库 > Oracle

Oracle:一条SQL实现将多行数据并为一行显示

2006-06-17 19:19 543 查看
家庭信息表:
ID 学生姓名 成员姓名
1 张三 成员1
2 张三 成员2
3 李四 成员1
4 李四 成员2


现在要显示为:
学生姓名 成员姓名1 成员姓名2
张三 成员1 成员2
李四 成员1 成员2

代码如下:

select 档案编号,
max(decode(my_seq,1,成员姓名)) 成员姓名1,
max(decode(my_seq,1,与本人关系)) 与本人关系1,
max(decode(my_seq,2,成员姓名)) 成员姓名2,
max(decode(my_seq,2,与本人关系)) 与本人关系2
from (
select 档案编号,
成员姓名,
与本人关系,
row_number() over
(partition by 档案编号 order by 成员姓名) my_seq
from v_insch_familyInfo Where 导入编号 = 17
)
group by 档案编号


这只是一种方法,有那位朋友有更好的方法,欢迎多多交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: