【叶子函数分享四十六】获取元素个数的函数

    技术2022-05-18  11

    go

    -- 创建函数(作者:csdn邹建)

    create function getstrarrlength (@str varchar(8000))

    returns int

    as

    begin

      declare @int_return int

      declare @start int

      declare @next int

      declare @location int

      select @str =','+ @str +','

      select @str=replace(@str,',,',',')

      select @start =1

      select @next =1

      select @location = charindex(',',@str,@start)

      while (@location <>0)

      begin

        select @start = @location +1

        select @location = charindex(',',@str,@start)

        select @next =@next +1

      end

    select @int_return = @next-2

    return @int_return

    end

     

    -- 测试示例

    SELECT [dbo].[getstrarrlength]('1,2,3,4,a,b,c,d')

     

    --运行结果

    /*

    8

    */

     

    /*

    说明:

    我开始考虑直接看逗号的个数,用replace替换逗号,求长度差就可以了,但是这里这个函数两个逗号相邻做了处理。

    */


    最新回复(0)