表B有个字段CODE里面是 C1,C2,C3但B表里对应有C1代表"yyyy",C2代表 'kkkk'code_id    memo 
C1         yyyy
C2         kkkk
C3         hhhh想通来一语句实现: 
===
CODE                   memo
C1,C2,C3               yyyy,kkkk,hhhh

解决方案 »

  1.   

    晕,真不知怎表达:表A有个字段CODE里面是 C1,C2,C3现有B表与A表的CODE字段对应,即C1代表"yyyy",C2代表 'kkkk'......code_id    memo 
    C1         yyyy
    C2         kkkk
    C3         hhhh想通来一语句实现: 
    ===
    CODE                   memo
    C1,C2,C3               yyyy,kkkk,hhhh
      

  2.   

    虽然还是不明白你的A表和B表到底是咋样的,
    但是你的问题属于行转列
    这在oracle里一般不能用一句SQL语句实现,只能写程序
    我知道SQL SERVER可以
    select @var=@var+field from table;oracle在这方面得改进改进了,实在是太多的人提出类似的问题了。。
      

  3.   

    SQL> select * from a;CO REMA
    -- ----
    C1 4444
    C2 5555
    C3 6666SQL> select * from b;CODE
    --------------------
    C1,C3SQL> create or replace function get_code(t_code varchar2) return varchar2 is
      2  p_out varchar2(100);
      3  cursor cur1 is select re from a where instr(t_code,code_id)>0;
      4  begin
      5     for cur2 in cur1 loop
      6       if p_out is null then
      7          p_out:=cur2.re;
      8       else
      9          p_out:=p_out||','||cur2.re;
     10       end if;
     11     end loop;
     12     return p_out;
     13  end;
     14  /函数已创建。SQL> select code,get_code(code) from b;CODE                 GET_CODE(CODE)
    -------------------- ----------------------------------------
    C1,C3                4444,6666