你写一层排序的,然后在外层用wm_sys.wm_concat

解决方案 »

  1.   

    OPER@tl>select * from test;TELNO                R OPERS
    -------------------- - ----------
    7907777              a 1001
    7907777              b 1002
    7907777              c 1003
    7907778              a 1003
    7907778              b 1002
    7907778              c 1001已选择6行。OPER@tl>select telno,wmsys.wm_concat(opers)
      2  from (
      3  select * from test order by telno,rules,opers)
      4  group by telno;TELNO                WMSYS.WM_CONCAT(OPERS)
    -------------------- ------------------------------
    7907777              1001,1002,1003
    7907778              1003,1002,1001OPER@tl>
      

  2.   

    楼上的两位和我想的一样但是是必须所有的列都排序
     order by 优惠规则, 启用日期,失效日期,操作日期,操作员还是 
    只 order by 优惠规则就可以呢我的最终结果里要求多个列的里字符串的顺序都跟优惠规则的顺序一样才行
      

  3.   

    是的,我也看过,不能保证二个分组的排序一模一样
    估计和group 会重新排序有关系
      

  4.   

    用over(partition by xx order by xxx),在最外面在套一层,
    还需要row_number(),可以解决这个问题。
      

  5.   

    WMSYS.WM_CONCAT(目标字段) over(partition BY 分组 order by 排序)把结果里的逗号替换成"、" replace(WMSYS.wm_concat(目标字段),',','、')
      

  6.   

    楼主说的不是很明白, 最好来个sql看看