sql函数将1,2,3转换为表

/****** Object:  UserDefinedFunction [dbo].[splitstring_to_table]    Script Date: 2017/7/11 9:35:58 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[splitstring_to_table]
(
    @string NVARCHAR(MAX),--需要分割的支付如: ‘1,2,3,4’
    @delimiter CHAR(1)--分隔的字符串 ‘,’
)
RETURNS @output TABLE(
    data NVARCHAR(MAX)
)
BEGIN
    DECLARE @start INT, @end INT
    SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)

    WHILE @start < LEN(@string) + 1 BEGIN
        IF @end = 0 
            SET @end = LEN(@string) + 1

        INSERT INTO @output (data) 
        VALUES(SUBSTRING(@string, @start, @end - @start))
        SET @start = @end + 1
        SET @end = CHARINDEX(@delimiter, @string, @start)
    END
    RETURN
END


GO
原文地址:https://www.cnblogs.com/zhuyapeng/p/7153757.html