--再也不用拼接字符串了…………oh yeah!
CREATEFUNCTION [dbo].[f_split]
(@splitstring NVARCHAR(4000),
@separator CHAR(1) = ','
)
RETURNS @splitstringstable TABLE
(
[id] INT IDENTITY(1, 1),
[item] NVARCHAR(2000)
)
AS
BEGIN
DECLARE @currentindex INT
DECLARE @nextindex INT
DECLARE @returntext NVARCHAR(2000)
SELECT @currentindex=1
WHILE(@currentindex<=datalength(@splitstring)/2)
BEGIN
SELECT @nextindex=charindex(@separator,@splitstring,@currentindex)
IF(@nextindex=0 OR @nextindex IS NULL)
SELECT @nextindex=datalength(@splitstring)/2+1
SELECT @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex)
INSERT INTO @splitstringstable([item])
VALUES(@returntext)
SELECT @currentindex=@nextindex+1
END
RETURN
END
本文介绍了一个用于SQL的自定义函数f_split,该函数能够将包含逗号或其他指定分隔符的字符串拆分成多行记录,极大地方便了对复杂字符串的处理。
1972

被折叠的 条评论
为什么被折叠?



