split

CREATE FUNCTION [dbo].[split]

(
@splitstring varchar(max),
@separator CHAR(1) = ','
)
RETURNS @splitstringstable TABLE
(
[item] VARCHAR(200)
)
AS
BEGIN
DECLARE @currentindex INT
DECLARE @nextindex INT
DECLARE @returntext VARCHAR(200)

SELECT @currentindex=1

WHILE(@currentindex<=datalength(@splitstring))
BEGIN
    SELECT @nextindex=charindex(@separator,@splitstring,@currentindex)
    IF(@nextindex=0 OR @nextindex IS NULL)
        SELECT @nextindex=datalength(@splitstring)+1
    
    SELECT @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex)

    INSERT INTO @splitstringstable([item])
    VALUES(@returntext)
    
    SELECT @currentindex=@nextindex+1
END
RETURN

END

posted @ 2024-06-19 14:22  自在现实  阅读(70)  评论(0)    收藏  举报