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

posted @ 2018-06-30 18:27  pcbren  阅读(165)  评论(0编辑  收藏  举报