美文网首页
SQL-将字符串按分割符拆分返回表

SQL-将字符串按分割符拆分返回表

作者: 浮萍已逝 | 来源:发表于2020-11-10 14:42 被阅读0次

    例子:select * from F_Split('1,2,3,4,5',',')

    创建函数:


    Create FUNCTION [dbo].[F_Split]

    (

        @SplitString nvarchar(max),  --源字符串

        @Separator nvarchar(10)=' '  --分隔符号,默认为空格

    )

    RETURNS @SplitStringsTable TABLE  --输出的数据表

    (

        [id] int identity(1,1),

        [value] nvarchar(max)

    )

    AS

    BEGIN

        DECLARE @CurrentIndex int;

        DECLARE @NextIndex int;

        DECLARE @ReturnText nvarchar(max);

        SELECT @CurrentIndex=1;

        WHILE(@CurrentIndex<=len(@SplitString))

            BEGIN

                SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);

                IF(@NextIndex=0 OR @NextIndex IS NULL)

                    SELECT @NextIndex=len(@SplitString)+1;

                    SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);

                    INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);

                    SELECT @CurrentIndex=@NextIndex+1;

                END

        RETURN;

    END

    GO


    相关文章

      网友评论

          本文标题:SQL-将字符串按分割符拆分返回表

          本文链接:https://www.haomeiwen.com/subject/xpljbktx.html