CREATE FUNCTION dbo.f_split_string(@s varchar(8000),@c varchar(10))
RETURNS @t TABLE(s varchar(8000))
AS
BEGIN
--作者:pbsql
--将指定字符串@s以字符串@c为分隔拆分为记录集
DECLARE @i int,@l int
SELECT @i=CHARINDEX(@c,@s),@l=LEN(@c)
WHILE @i>0
BEGIN
INSERT @t(s) VALUES(LEFT(@s,@i-1))
SELECT @s=STUFF(@s,1,@i+@l-1,''),@i=CHARINDEX(@c,@s)
END
INSERT @t(s) VALUES(@s)
RETURN
END
GO
调用示例:
SELECT * FROM dbo.f_split_string('1,2,3',',')
返回:
s
1
2
3