sql自定义函数split分隔字符串

sql自定义函数split分隔字符串

ID:34726237

大小:54.81 KB

页数:5页

时间:2019-03-10

sql自定义函数split分隔字符串_第1页
sql自定义函数split分隔字符串_第2页
sql自定义函数split分隔字符串_第3页
sql自定义函数split分隔字符串_第4页
sql自定义函数split分隔字符串_第5页
资源描述:

《sql自定义函数split分隔字符串》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SQL自定义函数split分隔字符串一、F_Split:分割字符串拆分为数据表CreateFUNCTION[dbo].[F_Split](@SplitStringnvarchar(max),--源字符串@Separatornvarchar(10)=''--分隔符号,默认为空格)RETURNS@SplitStringsTableTABLE--输出的数据表([id]intidentity(1,1),[value]nvarchar(max))ASBEGINDECLARE@CurrentIndexint;DECLARE@NextIndexint;DECLARE@ReturnTextnvarchar(m

2、ax);SELECT@CurrentIndex=1;WHILE(@CurrentIndex<=len(@SplitString))BEGINSELECT@NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);IF(@NextIndex=0OR@NextIndexISNULL)SELECT@NextIndex=len(@SplitString)+1;SELECT@ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);INSERTINTO@S

3、plitStringsTable([value])VALUES(@ReturnText);SELECT@CurrentIndex=@NextIndex+1;ENDRETURN;END--使用示例select*FROmdbo.F_Split('111,b2222,323232,32d,e,323232f,g3222',',')结果为id         value-----------------------------------------------1          1112          b22223          3232324          32d5         

4、 e6          323232f7          g3222====================================二、F_SplitLength:获取分割后的字符数组的长度Createfunction[dbo].[F_SplitLength](@Stringnvarchar(max),--要分割的字符串@Splitnvarchar(10)--分隔符号)returnsintasbegindeclare@locationintdeclare@startintdeclare@lengthintset@String=ltrim(rtrim(@String))set@loc

5、ation=charindex(@split,@String)set@length=1while@location<>0beginset@start=@location+1set@location=charindex(@split,@String,@start)set@length=@length+1endreturn@lengthend--调用示例selectdbo.F_SplitLength('111,b2222,323232,32d,e,323232f,g3222',',')结果为7。 ====================================三、F_SplitOfInde

6、x:获取分割后特定索引的字符串Createfunction[dbo].[F_SplitOfIndex](@Stringnvarchar(max),--要分割的字符串@splitnvarchar(10),--分隔符号@indexint--取第几个元素)returnsnvarchar(1024)asbegindeclare@locationintdeclare@startintdeclare@nextintdeclare@seedintset@String=ltrim(rtrim(@String))set@start=1set@next=1set@seed=len(@split)set@locat

7、ion=charindex(@split,@String)while@location<>0and@index>@nextbeginset@start=@location+@seedset@location=charindex(@split,@String,@start)set@next=@next+1endif@location=0select@location=len(@String)+1re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。