这个sql脚本怎么写? 1.table1是码表,有两个字段:code,name 2.table2是业务表,有一个字段:typecode
3.table2.typecode的值可能是多个table1.code用逗号隔开,如:1,2,3问题:怎么写脚本能根据table1码表把table2中的typecode翻...
3.table2.typecode的值可能是多个table1.code用逗号隔开,如:1,2,3
问题:怎么写脚本能根据table1码表把table2中的typecode翻译过来 展开
问题:怎么写脚本能根据table1码表把table2中的typecode翻译过来 展开
1个回答
展开全部
网上看的管道化表函数写的字符串分割函数,
create or replace function strsplit(p_value varchar2,
p_split varchar2 := ',')
--usage: select * from table(strsplit('1,2,3,4,5'))
return strsplit_type
pipelined is
v_idx integer;
v_str varchar2(500);
v_strs_last varchar2(4000) := p_value;
begin
loop
v_idx := instr(v_strs_last, p_split);
exit when v_idx = 0;
v_str := substr(v_strs_last, 1, v_idx - 1);
v_strs_last := substr(v_strs_last, v_idx + 1);
pipe row(v_str);
end loop;
pipe row(v_strs_last);
return;
end strsplit;
例子:select * from table(strsplit('1,2,3,4,5'))
create or replace function strsplit(p_value varchar2,
p_split varchar2 := ',')
--usage: select * from table(strsplit('1,2,3,4,5'))
return strsplit_type
pipelined is
v_idx integer;
v_str varchar2(500);
v_strs_last varchar2(4000) := p_value;
begin
loop
v_idx := instr(v_strs_last, p_split);
exit when v_idx = 0;
v_str := substr(v_strs_last, 1, v_idx - 1);
v_strs_last := substr(v_strs_last, v_idx + 1);
pipe row(v_str);
end loop;
pipe row(v_strs_last);
return;
end strsplit;
例子:select * from table(strsplit('1,2,3,4,5'))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询