a         b
200604862 10
200604862 20
200604862 30
------------------------
查询后结果如下:200604862    10,20,30请问该如何写呢?

解决方案 »

  1.   

    Select x,max(substr((sys_connect_by_path(y,',')),2)) cola
     from ( select x,y, rownum rnum,
                   row_number() over(partition by x order by x) rn1
     from a  )
     start with rn1=1
     connect by rnum-1=prior rnum
     group by x
      

  2.   

    CREATE OR REPLACE FUNCTION  FFF (V_ID VARCHAR2) RETURN VARCHAR2 IS
    V_TITLE   VRCHAR2(30);
    BEGIN
      FOR C1 IN (SELECT B FROM TABLE WHERE A=V_ID) LOOP
        V_TITLE:=V_TITLE||' '||C1.B;
      END LOOP;
    RETURN  V_TLTLE;
    END;SELECT DISTINCT B,FFF(B) FROM TABLE