oracle wmsys.wm_concat 问题

jya126 2011-02-16 06:41:54
我建个表 t,字段为key,name
数据有:1,a;
1,b;
2,a;
2,b;
2,c;
我用:select t.key,wmsys.wm_concat(t.name) from t order by t.key
结果会成为:1 a,b;
2 c,a,b;
我想问下有没有方法使其第二行变为: 2 a,b,c ,也就是能排下序
...全文
428 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2011-02-17
  • 打赏
  • 举报
回复
SELECT key, MAX(NAME) NAME
FROM (SELECT t.key,
wmsys.wm_concat(t.NAME) over(PARTITION BY t.key ORDER BY t.NAME) NAME
FROM t)
GROUP BY key;
minitoy 2011-02-17
  • 打赏
  • 举报
回复
只有这个能确保排序,不过记得要套一层取max[Quote=引用 4 楼 gelyon 的回复:]
SQL code

--wm_concat函数其实也是一个开窗函数,因此直接套用分析函数就可以了
select t.key,wmsys.wm_concat(t.name)over(partition by t.key order by t.name) from t order by t.key
[/Quote]
lxyzxq2008 2011-02-17
  • 打赏
  • 举报
回复

paddy的外面再套一层
minitoy正解~~~

with tab as
(select 1 key, 'a' name from dual union all
select 1,'b' from dual union all
select 2,'a' from dual union all
select 2,'b' from dual union all select 2,'c' from dual)

SELECT key, MAX(NAME) NAME
FROM (SELECT t.key,
wmsys.wm_concat(t.NAME) over(PARTITION BY t.key ORDER BY t.NAME) NAME
FROM tab t)
GROUP BY key;
------------------------------------------------------------------
1 a,b
2 a,b,c
gelyon 2011-02-16
  • 打赏
  • 举报
回复

--wm_concat函数其实也是一个开窗函数,因此直接套用分析函数就可以了
select t.key,wmsys.wm_concat(t.name)over(partition by t.key order by t.name) from t order by t.key
心中的彩虹 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 jya126 的回复:]
我建个表 t,字段为key,name
数据有:1,a;
1,b;
2,a;
2,b;
2,c;
我用:select t.key,wmsys.wm_concat(t.name) from t order by t.key
结果会成为:1 a,b;
2 c,a,b;
我想问下有没有方法使其第二行变为: 2 a,b,c ,也就是能排下序
[/Quote]

select key,wmsys.wm_concat(name) from (
select t.key,t.name from t order by t.key,t.name
) group by key
碧水幽幽泉 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuomingwang 的回复:]
SQL code

select t.key,wmsys.wm_concat(t.name)
from (select * from t order by key) t
group by t.key
[/Quote]
先排序,再行转列!
  • 打赏
  • 举报
回复

select t.key,wmsys.wm_concat(t.name)
from (select * from t order by key) t
group by t.key

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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