最近这样的例子太多了吧,参照一下以前的例子吧,DECODE函数就可以解决的,主要考虑第三列就好了

解决方案 »

  1.   

    为何多出一列,意思表达不清。只能这样解答。
    create or replace function get(p_id in varchar2) return varchar2 is
     Result varchar2(100);
     
     cursor rad_cursor(v_id varchar2) is
            select a2,a4 from abc 
            where a1=v_id ;
    v_count Number;
    begin
    v_count:=0;
    Result:='';
       for v_sor in rad_cursor(p_id) loop
         if v_count=0 then
           Result:=v_sor.a2||','||v_sor.a4;
           v_count:=v_count+1
         else
          Result:=Result||','||v_sor.a2||','||v_sor.a4;
         end if;
        end loop; 
       return(Result);
    end get;
    /select a1,get(a1) from abc group by a1;
      

  2.   

    select a1 from abc group by a1
      

  3.   

    select disticnt a1 from abc;disticnt:表示取出不重复的a1 的记录!