如下,我在数据库里查出了一列值,
[align=center]creator(字段名)
 zhangsan
 lisi
 wangwu[/align]
我想把查出来的这三个值通过sql语句转换为 zhangsan,lisi,wangwu 这样一个字段的形式,不知道行不行,请各位高手赐教,谢谢!

解决方案 »

  1.   


    Oracle 行列转换
    http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4704858.aspxSQL> select * from t_row_str;        ID COL
    ---------- ----------
             1 a
             1 b
             1 c
             3 c
             2 d
             2 a
             2 d已选择7行。SQL> SELECT id,
      2         MAX(decode(rn, 1, col, NULL)) ||
      3         MAX(decode(rn, 2, ',' || col, NULL)) ||
      4         MAX(decode(rn, 3, ',' || col, NULL)) str
      5    FROM (SELECT id,
      6                 col,
      7                 row_number() over(PARTITION BY id ORDER BY col) AS rn
      8            FROM t_row_str) t
      9  GROUP BY id
     10  ORDER BY 1;        ID STR
    ---------- --------------------------------
             1 a,b,c
             2 a,d,d
             3 c
      

  2.   

    10g的话可以用wmsys.wm_concat,非常方便。
      

  3.   


    up.5.wmsys.wm_concat:  适用范围:10g及以后版本
    这个函数预定义按','分隔字符串,若要用其他符号分隔可以用,replace将','替换。SELECT REPLACE(wmsys.wm_concat(col), ',', ',')  FROM t_row_str;
      

  4.   

    select wmsys.wm_concat(pono) from tpssm101 ;