【问题标题】:Oracle: normalized fields to CSV stringOracle:将字段标准化为 CSV 字符串
【发布时间】:2009-09-18 00:07:00
【问题描述】:

我有一些看起来像这样的一对多标准化数据。

a | x
a | y
a | z
b | i
b | j
b | k

什么查询将返回数据,使得“多”端表示为 CSV 字符串?

a | x,y,z
b | i,j,k

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    标记,

    如果您使用的是 11gR2 版本,但不是 :-),那么您可以使用 listagg

    SQL> create table t (col1,col2)
      2  as
      3  select 'a', 'x' from dual union all
      4  select 'a', 'y' from dual union all
      5  select 'a', 'z' from dual union all
      6  select 'b', 'i' from dual union all
      7  select 'b', 'j' from dual union all
      8  select 'b', 'k' from dual
      9  /
    
    Tabel is aangemaakt.
    
    SQL> select col1
      2       , listagg(col2,',') within group (order by col2) col2s
      3    from t
      4   group by col1
      5  /
    
    COL1  COL2S
    ----- ----------
    a     x,y,z
    b     i,j,k
    
    2 rijen zijn geselecteerd.
    

    如果您的版本不是 11gR2,而是高于 10gR1,那么我建议为此使用模型子句,如下所示:http://rwijk.blogspot.com/2008/05/string-aggregation-with-model-clause.html

    如果低于 10,那么您可以在 rexem 指向 oracle-base 页面的链接中,或在上述博文中指向 OTN 线程的链接中看到几种技术。

    问候, 抢。

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 2012-01-26
      • 2019-06-03
      • 2016-06-19
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多