求助,oracle数据库数据格式化输出问题。

kevin-ke DBA  2013-05-14 03:22:33
例如表t1有如下数据:
name, hobby
a 足球
a 篮球
a 乒乓
b 游泳
b 足球
c 篮球

如何用sql语句实现
结果如下:

a|足球,篮球,乒乓
b|游泳,足球
c|篮球
...全文
178 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rabitsky 2013-05-21
网上有很多类似的帖子。 借用一下二楼数据:

with t as (
select 'a' name, '足球' hobby from dual union all  
select 'a' name, '篮球' hobby from dual union all  
select 'a' name, '乒乓' hobby from dual union all  
select 'b' name, '游泳' hobby from dual union all  
select 'b' name, '足球' hobby from dual union all  
select 'c' name, '篮球' hobby from dual )
select t.name||'|'|| wmsys.wm_concat(hobby)
from t
group by t.name
/*
a|足球,篮球,乒乓
b|游泳,足球
c|篮球
*/
回复
怎么又是和并列的帖
回复
sych888 2013-05-15
SQL> select id||'|'||wm_concat(nn) from test1 group by id;

ID||'|'||WM_CONCAT(NN)
----------------------------------------------------------------
a|足球,篮球,乒乓
b|游泳,足球
c|篮球
回复
hh7yx 2013-05-15
把上面的within group(order by t.name) 改成 within group(order by rownum) 就ok了。
回复
hh7yx 2013-05-15
引用 1 楼 wqkjj 的回复:
貌似只能用存储过程或者函数,简单的sql是不行的 然后把过程或者函数嵌在sql中
sql有什么不可以的
with t as
 (select 'a' name, '足球' hobby
    from dual
  union all
  select 'a' name, '篮球' hobby
    from dual
  union all
  select 'a' name, '乒乓' hobby
    from dual
  union all
  select 'b' name, '游泳' hobby
    from dual
  union all
  select 'b' name, '足球' hobby
    from dual
  union all
  select 'c' name, '篮球' hobby from dual)
select t.name || '|' || listagg(hobby, ',') within group(order by t.name)
  from t
 group by t.name;
回复
wqkjj 2013-05-15
貌似只能用存储过程或者函数,简单的sql是不行的 然后把过程或者函数嵌在sql中
回复
wqkjj 2013-05-15
引用 4 楼 sych888 的回复:
SQL> select id||'|'||wm_concat(nn) from test1 group by id; ID||'|'||WM_CONCAT(NN) ---------------------------------------------------------------- a|足球,篮球,乒乓 b|游泳,足球 c|篮球
承教!
回复
babyqian84 2013-05-15
引用 4 楼 sych888 的回复:
SQL> select id||'|'||wm_concat(nn) from test1 group by id; ID||'|'||WM_CONCAT(NN) ---------------------------------------------------------------- a|足球,篮球,乒乓 b|游泳,足球 c|篮球
这个方法是可以的,但是有局限性,“足球,篮球,乒乓”的顺序是不固定的,用order by也没用,所以如果对顺序有要求的时候慎用
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-05-14 03:22
社区公告
暂无公告