创建函数:
CREATE OR REPLACE
function split(p_str varchar2,p_delimiter varchar2 default ',') return type_str
is
rs type_str:=type_str();
l_str varchar2(4000):='';
l_len number:=0;
begin
l_str:=p_str;
l_len:=length(p_delimiter);
while length(l_str)>0 loop
if instr(l_str,p_delimiter)>0 then
rs.extend;
rs(rs.count):=substr(l_str,1,instr(l_str,p_delimiter)-1);
l_str:=substr(l_str,instr(l_str,p_delimiter)+l_len);
else
rs.extend;
rs(rs.count):=l_str;
exit;
end if;
end loop;
return rs;
end;
使用split函数,默认以","分割:
select split(column,',') from test ;
将字符串单元格可IN,列转行:
select name from test
where
id in(
select split(id) from test2
)