PCB MS SQL 将字符串分割为表变量(表值函数)

时间:2023-03-10 07:24:54
PCB MS SQL 将字符串分割为表变量(表值函数)
Create  FUNCTION [dbo].[SplitTable](
@s varchar(max), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(id int IDENTITY(1,1), col varchar(max)) --建立临时表保存分割后的字符
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END

示例:

SELECT * FROM [dbo].[SplitTable]('喷锡,沉金,镀金,OSP',',')

PCB MS SQL 将字符串分割为表变量(表值函数)