CREATE FUNCTION [dbo].[f_split](@ids VARCHAR(MAX))
RETURNS @t_split TABLE(col VARCHAR(100))
AS
BEGIN
–循环找到字符串中第一个’,‘的索引
WHILE(CHARINDEX(’,’,@ids)<>0)
BEGIN
–将第一个’,‘之前的字符单元插入临时表中
INSERT @t_split(col) VALUES(SUBSTRING(@ids,1,CHARINDEX(’,’,@ids)-1))
–将第一个’,‘后面的字符串重新赋给@ids
SET @ids=STUFF(@ids,1,CHARINDEX(’,’,@ids),’’)
END
–将最后一个字符单元插入表中(已经没有’,’)
INSERT @t_split(col) VALUES(@ids)
RETURN
END
SELECT * FROM dbo.f_split(‘1,2,3’)