DB2 分拆字符串

来源:互联网 发布:java飞机订票系统 编辑:程序博客网 时间:2024/05/10 03:50

    在sql server中我们一般使用自定义函数返回表变量的方式来拆分字符串,DB2不支持表函数,但我们可以借助CTE实现类似的自定义函数

 

 

----创建分拆函数

 

CREATE FUNCTION fc_splitstr
(
 srcsql varchar(8000)  --待分拆的字符串
 ,spt  varchar(100)   --分割符
)
  RETURNS table
  (
   re varchar(800)
   )
F1: BEGIN ATOMIC
/**************************************************************************
*过程名称: 字符串拆分函数
*过程功能: 将字符串根据间隔字符分开
*输入参数: 待分拆的字符串
             分割符
*输出参数: tables
*编 程 人: WDH

*编程时间: 2009-11-08
*修 改 人:
*修改比率:
*修改内容:
***************************************************************************/
return
with n(str, ori, pos) as (
values (srcsql||spt, 1,locate(spt,srcsql||spt))
union all
select  str,  pos+length(spt), locate(spt, str, pos+length(spt))
from n
where locate(spt, str,pos+length(spt))>0)
select substr(str, ori, pos-ori) as result from n;
END ;

 

 

-----调用示例:

select * from table(fc_splitstr('a,b,c,d,e',','))

 

----结果

RE

---

a
b
c
d
e

原创粉丝点击