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',',')