比如数据表为  1   直辖市  天津
        1   直辖市  北京
        3   省市   河北合并后为    1   直辖市  天津,北京
        3   省市   河北sql语句如何写,谢谢诶?

解决方案 »

  1.   

    select 地区类型id,wm_concat(省) from table1 group by 地区类型id
      

  2.   

    我的sql是这样的:
    select a.gw_id,a.gw_title,a.gw_wenhao_year,b.ownername from gw_qianbao 
    a,wfmc_templatenode_owner_inst b where a.gw_id=b.instance_id order by a.gw_id要把a.gw_id,a.gw_title,a.gw_wenhao_year项相同的记录b.ownername信息 合并该如何写?
      

  3.   

    SELECT a.gw_id, a.gw_title, a.gw_wenhao_year, wm_concat(b.ownername)
      FROM gw_qianbao a, wfmc_templatenode_owner_inst b
     WHERE a.gw_id = b.instance_id
     GROUP BY a.gw_id, a.gw_title, a.gw_wenhao_year
     ORDER BY a.gw_id
      

  4.   

    SQL> select p_type,wmsys.wm_concat(p_name) from province group by p_type;P_TYPE                                   WMSYS.WM_CONCAT(P_NAME)
    ---------------------------------------- --------------------------------------------------------------------------------
    直辖市                                   S.N,Y)m%
    省市                                     l_?为什么我用wm_concat()这个函数执行出来的是乱码呢?
      

  5.   

    谢谢,我的oracle不是10G不支持wm_concat
    该如何写?
      

  6.   

    我的也是,应该是oracle10G才支持这个函数 不知9i的版本该怎么写?
      

  7.   

    贴一下以及前从论坛高手那学到的写法,适合9iSQL> SELECT * FROM test1; ID F1        F2-- ---------- ---------- 1 直辖市  北京市 1 直辖市  上海市 3 其他省市 河北省 SQL> SQL> SELECT f1,max(sys_connect_by_path(f2, '/'))  2  FROM (SELECT f1,f2, row_number() over(PARTITION BY f1 ORDER BY f2) rn FROM test1) t  3  START WITH rn = 1  4  CONNECT BY rn  = PRIOR rn +1 AND f1= PRIOR f1  5  GROUP BY f1; F1        MAX(SYS_CONNECT_BY_PATH(F2,'/'---------- --------------------------------------------------------------------------------其他省市 /河北省直辖市  /北京市/上海市 SQL> 
      

  8.   

    自定义一个WM_CONCAT相同功能的聚合函数
    具体作法看文档或google
    http://sunsonbaby.cnblogs.com/archive/2005/01/21/95435.html