因为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(字符分割)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)