现有问题:select result_SN from tai_dc_resdata;
这样的话查到的结果会体现为:result_SN
958578
958579
958580
958581
958582
958583
958584
……但是现在需求是想把查询到的结果合并为一个字符串
最重要的是  958578#958579#958580……这样的一个大字符串直接用select的方式可以实现吗?
不用自定义函数或者存储过程之类的可以吗?

解决方案 »

  1.   

    --10g
    select wm_concat(result_SN) from tai_dc_resdata;
      

  2.   

    --9i
    SELECT ltrim(MAX(sys_connect_by_path(result_SN, '#')), '#')
      FROM (SELECT rownum rn, result_SN FROM tai_dc_resdata)
     START WITH rn = 1
    CONNECT BY PRIOR rn = rn - 1;--10g
    SELECT REPLACE(wm_concat(result_SN), ',', '#') FROM tai_dc_resdata;--11gr2
    SELECT LISTAGG(result_SN, '#') WITHIN GROUP(ORDER BY result_SN)
      FROM tai_dc_resdata;
      

  3.   

    select replace(wm_concat(result_SN),',','#') col
    from tai_dc_resdata;