表A有字段
code_name
1,2
2,3
1,2,3-----
表B
有 1,2,3...等的解释表
code_id res
1 联电无效
2 联电无人接
3 .....
----------
想实现
把表A翻译出来
code_name, re
1,2 联电无效,联电无人接应该用函数可以实现,但就是不知怎写
code_name
1,2
2,3
1,2,3-----
表B
有 1,2,3...等的解释表
code_id res
1 联电无效
2 联电无人接
3 .....
----------
想实现
把表A翻译出来
code_name, re
1,2 联电无效,联电无人接应该用函数可以实现,但就是不知怎写
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 res into var_element from test3 where code_id=var_element;
rst:=rst||var_element||',';
end loop;
select res into var_element from test3 where code_id=var_tmp;
rst:=rst||var_element;
return rst;
end;--执行测试查询
select '1,2',f_test1('1,2',',') re from dual
--Result
1,2 联电无效,联电无人接
本来我对此社区已失望了,但今天又让我看到了一点署光.