sql将逗号分隔的字符串转为表Table

Create Function [dbo].[Func_SplitStrToTable](@str varchar(8000))

Returns @tableName Table

(

   str2table varchar(100)

)

As

--该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将转换成一个表

Begin

set @str = @str+','

Declare @insertStr varchar(100) --截取后的第一个字符串

Declare @newstr varchar(8000) --截取第一个字符串后剩余的字符串

set @insertStr = left(@str,charindex(',',@str)-1)

set @newstr = stuff(@str,1,charindex(',',@str),'')

Insert @tableName Values(@insertStr)

while(len(@newstr)>0)

begin

   set @insertStr = left(@newstr,charindex(',',@newstr)-1)

   Insert @tableName Values(@insertStr)

   set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')

end

Return

End

调用方法:

select  Func_SplitStrToTable('1,2,3,4,5')

原文地址:https://www.cnblogs.com/dashi/p/4034663.html