CREATE FUNCTION func_splitstringback
(
@str NVARCHAR(MAX) , --varchar(max):文本,代替text 大值数据类型最多可以存储2^30-1个字节的数据。
@split VARCHAR(10)
)
RETURNS @t TABLE ( c1 VARCHAR(100) ) ---返回一个t 表一个字段 C1
AS
BEGIN
DECLARE @i INT
DECLARE @s INT
SET @i = 1
SET @s = 1
WHILE ( @i > 0 ) --循环
BEGIN
SET @i = CHARINDEX(@split, @str, @s) ---从第一个位置获取,@str中包含@split参数的位置:(eg:charindex(',','1,23',1)
IF ( @i > 0 )
BEGIN
INSERT @t
( c1 )
VALUES ( SUBSTRING(@str, @s, @i - @s) ) --eg:SELECT SUBSTRING('1111,22225,3333', 1, 5 - 1) ==1111
END
ELSE
BEGIN
INSERT @t
( c1 )
VALUES ( SUBSTRING(@str, @s, LEN(@str) - @s + 1) )
END
SET @s = @i + 1
END
RETURN ---返回
END
GO
eg: