优秀的编程知识分享平台

网站首页 > 技术文章 正文

在SqlServer中,如何把一个用逗号分隔的字符串转成一个表的一列

nanyue 2024-09-14 06:28:24 技术文章 7 ℃

SqlServer中,如何把一个用逗号分隔的多个数据字符串转成一个表的一列,

例如字符串(’1,2,3,4,5’)。

这在很多数据处理的场景有用,方法如下:

在SqlServer中创建一个表值函数(对应SQL):

CREATE Function [dbo].[Hx_StrToTable](@str varchar(2000))

Returns @tableName Table

(

Hx_StrToTable int

)

As

BEGIN

SET @str = @str+','

Declare @uid_0 int --截取后的第一个字符串

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

Set @uid_0 = left(@str,charindex(',',@str)-1)

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

Insert @tableName Values(@uid_0)

While(len(@newstr)>0)

BEGIN

Set @uid_0 = left(@newstr,charindex(',',@newstr)-1)

Insert @tableName Values(@uid_0)

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

END

Return

End

执行该表函数的效果如下:

--如何把一个用逗号分隔的多个数据字符串变成一个表的一列

SELECT * FROM Hx_StrToTable('1,2,3,4,5')

最近发表
标签列表