<div class="codetitle"><a style="CURSOR: pointer" data="80897" class="copybut" id="copybut80897" onclick="doCopy('code80897')"> 代码如下:<div class="codebody" id="code80897"> SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO / by kudychen 2011-9-28 / CREATE function [dbo].[SplitString] ( @Input nvarchar(max),--input string to be separated @Separator nvarchar(max)=',',--a string that delimit the substrings in the input string @RemoveEmptyEntries bit=1 --the return value does not include array elements that contain an empty string ) returns @TABLE table ( [Id] int identity(1,1), [Value] nvarchar(max) ) as begin declare @Index int,@Entry nvarchar(max) set @Index = charindex(@Separator,@Input) while (@Index>0) begin set @Entry=ltrim(rtrim(substring(@Input,1,@Index-1))) if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'') begin insert into @TABLE([Value]) Values(@Entry) end set @Input = substring(@Input,@Index+datalength(@Separator)/2,len(@Input)) set @Index = charindex(@Separator,@Input) end set @Entry=ltrim(rtrim(@Input)) if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'') begin insert into @TABLE([Value]) Values(@Entry) end return end 如何使用: <div class="codetitle"><a style="CURSOR: pointer" data="72611" class="copybut" id="copybut72611" onclick="doCopy('code72611')"> 代码如下:<div class="codebody" id="code72611"> declare @str1 varchar(max),@str2 varchar(max),@str3 varchar(max) set @str1 = '1,2,3' set @str2 = '1###2###3' set @str3 = '1###2###3###' select [Value] from [dbo].SplitString select [Value] from [dbo].SplitString select [Value] from [dbo].SplitString 执行结果:
里面还有个自增的[Id]字段哦,在某些情况下有可能会用上的,例如根据Id来保存排序等等。 例如根据某表的ID保存排序: 代码如下: 具体的应用请根据自己的情况来吧:) 作者:Kudy
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|