SQL.数据库内拆分字符串并返回数据表

Create Function SplitStr(
@SrcInfo nvarchar(max),
@SplitStr nvarchar(100)
)
Returns @temp table(F1 varchar(1000))
as
begin
declare @ch nvarchar(1000)
declare @chidx integer
declare @splitLen integer
Set @splitLen=LEN(@SplitStr)
Set @SrcInfo=ltrim(rtrim(@SrcInfo))
Set @chidx=CHARINDEX(@SplitStr,@SrcInfo)
while(@chidx>0)
begin

Set @ch=left(@SrcInfo,@chidx-1)
Insert into @temp values(@ch)
--
Set @SrcInfo=stuff(@SrcInfo,1,@chidx+@splitLen-1,'')
Set @chidx=CHARINDEX(@SplitStr,@SrcInfo)
end
if @SrcInfo<>''
Insert into @temp values(@SrcInfo)
--
return
end

--select * from dbo.SplitStr('1,2,3,4',',')
--select * from dbo.SplitStr('1,x,2,x,3,x,4',',x,')
--select * from dbo.SplitStr('1c拆d2c拆d3c拆d4','c拆d')

原文地址:https://www.cnblogs.com/jieling/p/13962693.html