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

oracle多行数据合并成一行

2015-04-22 10:43 204 查看
表test(id,name)  数据如下:
id   name
1    张三
2   李四
3   王五
要求查询显示形式如下(即把name字段的所有数据拼起来合并到一行显示)
AllName
张三-李四-王五

select id ,listagg( name, ',' ) within group ( order by id ) as name

from TABLE_NAME
GROUP BY id;



2------------------------
t_table:col1,col2,col3,col4,col5,col6
其中col1和col2是每条记录都有值的,
col1 col2 col3 col4 col5 col6
jack 杰克 a a1 c1
jack 杰克 a b2
jack 杰克 b a3 b3 c3
mary 玛丽 c a4 c4
mary 玛丽 d a5 b5
mary 玛丽 c a6 b6 c6

我想根据col1和col2的唯一决定,来把jack 杰克合成一条记录,mary 玛丽合成一条记录,即:

col1 col2 col3 col4 col5 col6
jack 杰克 a,a,b a1,a3 b2,b3 c1,c3
mary 玛丽 c,d,c a4,a5,a6 b5,b6 c4,c6

请问用Oracle该如何写SQL啊?
SQL:select t.col1,
t.col2,
wm_concat(t.col3) col3,
wm_concat(t.col4) col4,
wm_concat(t.col5) col5,
wm_concat(col6) col6
from t_table t
group by t.col1, t.col2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: