首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 10g中的聚合字符串连接

Oracle 10g中的聚合字符串连接
EN

Stack Overflow用户
提问于 2013-06-26 14:17:41
回答 4查看 14.1K关注 0票数 3

我使用的是Oracle 10 g,我有一个类似于下面的场景:

没有名字

1罗尼

1詹姆斯

1个Aby

2个相同

2威利

3麦克风

我需要聚合和连接字符串(中间有一个空格),以获得结果:

没有名字

1罗尼·詹姆斯·阿比

2萨姆·威利

3麦克风

我使用的是Oracle10g,必须使用SQL而不是PL/SQL来实现。有没有出路?

EN

回答 4

Stack Overflow用户

发布于 2013-06-26 14:48:44

在11G上很容易,您可以使用LISTAGG函数,但遗憾的是,在10G上不是这样

这里有一些早期版本的技术,但是它们确实需要编写一个函数。

http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php

票数 4
EN

Stack Overflow用户

发布于 2013-06-26 14:43:33

尝试此查询

代码语言:javascript
复制
select No  , rtrim(Name,',') Name
   from ( select No , Name , rn from yourtable
           model
  partition by (No)
  dimension by (row_number() over
 (partition by No order by Name) rn
 )
 measures  (cast(Name as varchar2(40)) Name)
   rules
 ( Name[any] order by rn desc = Name[cv()]||' '||Name[cv()+1]
   )
  )
    where rn = 1
    order by NO

这是您的sql demo

票数 3
EN

Stack Overflow用户

发布于 2013-06-26 14:47:56

您可以使用LISTAGG

请参阅demo here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17312848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档