用sqlserver手动写个split(字符分割)

用sqlserver手动写个split(字符分割),第1张

概述因为sqlserver中没有字符分割这个东西,所以无聊的时候写了个! 关键是用的地方还是比较多的大概用到三个函数吧!算法就不用说了, 大致的跟你想的差不多 直接上测试三个函数和字符分割例子,不明白的留言或者发邮件 select len('231')--结果:3select len('231')--结果:4select charindex('0','303030')--结果:2selec

因为sqlserver中没有字符分割这个东西,所以无聊的时候写了个!

关键是用的地方还是比较多的

大概用到三个函数吧!算法就不用说了,

大致的跟你想的差不多


直接上测试三个函数和字符分割例子,不明白的留言或者发邮件



select len('231')--结果:3select len('231')--结果:4select charindex('0','303030')--结果:2select charindex('0','303030',1)--结果:2select charindex('0',2)--结果:2select charindex('0',3)--结果:4select charindex('0',4)--结果:4select substring('ssdsdadc',2,5)--结果:sdsdaselect substring('ssdsdadc',1,5)--结果:ssdsdselect substring('ssdsdadc',2)--结果:sscreate FUNCTION [dbo].[SplitTotable] (     @SplitString nvarchar(max),@Separator nvarchar(10)=' ' ) RETURNS @SplitStringstable table ( [ID] int IDentity(1,1),[value] nvarchar(max) ) AS BEGIN	 --select * from dbo.SplitTotable('11,22,33,44,55,66',',')	      DECLARE @CurrentIndex int;     DECLARE @NextIndex int;     DECLARE @ReturnText nvarchar(max);     SELECT @CurrentIndex=1;     WHILE(@CurrentIndex<=len(@SplitString))         BEGIN             SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);             IF(@NextIndex=0 OR @NextIndex IS NulL)                 SELECT @NextIndex=len(@SplitString)+1;                 SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);                 INSERT INTO @SplitStringstable([value]) VALUES(@ReturnText);                 SELECT @CurrentIndex=@NextIndex+1;             END     RETURN; end 
总结

以上是内存溢出为你收集整理的用sqlserver手动写个split(字符分割)全部内容,希望文章能够帮你解决用sqlserver手动写个split(字符分割)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存