CREATE or replace FUNCTION F_TRANSFER_SPLIT
(p_str varchar(8000),p_split varchar(10))
RETURNS table(
result varchar(250)
)
NOT SECURED
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
READS SQL DATA
INHERIT SPECIAL REGISTERS
return
with TAB(str, ori, pos) as (
values (p_str||p_split, 1, locate(p_split,p_str))
union all
select str, pos+length(p_split), locate(p_split, str, pos+length(p_split))
from n
where locate(p_split, str, pos+length(p_split))>0)
select CASE WHEN pos > ori THEN substr(str, ori, pos-ori)
ELSE NULL END as result from TAB
END;
调用:select * from table(F_TRANSFER_SPLIT(‘43,56,TT,FF,RR’,‘,’));
查询结果为:
43
56
TT
FF
RR
————————————————
版权声明:本文为CSDN博主「笨驴鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fishroad/article/details/108861839
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。