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)

 

posted @ 2015-03-30 13:08  忧忧夏天  阅读(6110)  评论(0编辑  收藏  举报