本帖最后由 mynada 于 2010-07-28 19:43:14 编辑

解决方案 »

  1.   

    用连接符就 || 可以了:select A||B from table_name;
    SQL> select * from dave;        ID NAME
    ---------- ----------
             1 dmm
             1 dmm
             1 dmm
             1 dmm
             2 bl
    SQL> select id||name as Dba from dave;DBA
    ---------------------------------------------
    1dmm
    1dmm
    1dmm
    1dmm
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
    DBA3 群:63306533;     聊天 群:40132017
      

  2.   

    先做个函数,在函数中按定义游标,按A值找出所有记录,拼接好B字符串并输出。然后在Select语句中调用此函数。
      

  3.   

    试试这个:
    function str_cat( key_name in varchar2,key in varchar2,coname in varchar2,tname in varchar2 ) return varchar2
    /*
        功能:根据指定的表名、连接字段名、关键字段名及值,返回字符串字段的连接值(类似聚合函数)
        输入参数:
              key_name:用于判断的关键字段名,字符串(大写,可以是表达式)
              key:用于判断的关键字段值,字符串(大写,可以是表达式)
              coname:连接的字段名,字符串(大写)
              tname:输入,表名,字符串(大写)
        返回值:连接后的字符串(分隔符:,)
    */
    is
        str    varchar2(4000);
        sep    varchar2(2);
        val    varchar2(4000);
        cur    SYS_REFCURSOR;
    begin
        open cur for 'select '||coname||' from '|| tname || ' where ' || key_name || ' = :x ' using key;
        loop
            fetch cur into val;
            exit when cur%notfound;
            str := str || sep || val;
            sep := ', ';
        end loop;
        close cur;
        return str;
    end;
      

  4.   

    select A,wmsys.wm_concat(B) from table_name group by A
    --另外wmsys.wm_concat是10g以上版本才支持的
      

  5.   

    知道就自己写个了,csdn是解决疑难的,又不是做苦力的。