sql获取数组指定元素

需求:获取字符数组1,2,3的第2个元素

方法:通过自定义函数来实现

/*

       获取字符串数组某个元素

*/

if exists (select 1 from sysobjects where id = object_id('Get_StrArrayStrOfIndex' ))

   drop Function Get_StrArrayStrOfIndex

go

create function Get_StrArrayStrOfIndex

(

  @str varchar(5000 ),   -- 要分割的字符串

  @split varchar(10 ),   -- 分隔符号

  @index int                   --取第几个元素

)

returns varchar (5000)

as

begin

       declare @location int

       declare @start int

       declare @next int

       declare @seed int



       set @str =ltrim( rtrim(@str ))

       set @start =1

       set @next =1

       set @seed =len( @split)



       set @location =charindex( @split,@str )

       while @location <>0 and @index> @next

       begin

             set @start =@location+ @seed

             set @location =charindex( @split,@str ,@start)

             set @next =@next+ 1

       end

      

       if @location =0

             select @location =len (@str)+ 1

            

       return substring (@str, @start,@location -@start)

end

GO

用法:

print dbo.Get_StrArrayStrOfIndex('1,2,3',',',2)

 

你可能感兴趣的:(sql)