求 貌似简单,却难以实现的一SQL语句
表A   
 有字段 
    code_name    
    1,2 
    2,3 
    1,2,3   
 ----- 
 表B 
 有   1,2,3...等的解释表 
 code_id      remarks    
 1                        联电无效 
 2                        联电无人接 
 3                        ..... 
 ---------- 
 想实现 
 把表A翻译出来 
 code_name,   remark    
 1,2                        联电无效,联电无人接   
 应该用函数可以实现,但就是不知怎写     
------解决方案--------------------create table test3(code_id integer, remarks varchar2(100)); 
 insert into test3 
 select 1, '联电无效 ' from dual 
 union all 
 select 2, '联电无人接 ' from dual 
 union all 
 select 3, '无 ' from dual; 
 --创建函数 
 create or replace function f_test1(var_str in string,delimiter in string) return string 
 is 
 var_tmp varchar2(2000); 
 var_element varchar2(2000); 
 rst varchar2(2000); 
 begin 
 var_tmp := var_str; 
 rst:= ' '; 
 while instr(var_tmp,delimiter)> 0 loop 
 var_element := substr(var_tmp,1,instr(var_str,delimiter)-1); 
 var_tmp := substr(var_tmp,instr(var_str,delimiter)+1,length(var_tmp)); 
 select remarks into var_element from test3 where code_id=var_element; 
 rst:=rst||var_element|| ', '; 
 end loop; 
 select remarks into var_element from test3 where code_id=var_tmp; 
 rst:=rst||var_element; 
 return rst; 
 end;   
 --执行测试查询 
 select  '1,2 ',f_test1( '1,2 ', ', ') remark  from dual 
 --Result 
 1,2	联电无效,联电无人接