表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