【叶子函数分享四十七】获取指定索引的值的函数

来源:互联网 发布:英语网络培训心得 编辑:程序博客网 时间:2024/05/17 23:10

go

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

create function getstrofindex (@str varchar(8000),@index int =0)

returns varchar(8000)

as

begin

  declare @str_return varchar(8000)

  declare @start int

  declare @next int

  declare @location int

  select @start =1

  select @next =1 --如果习惯从开始则select @next =0

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

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

  begin

    select @start = @location +1

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

    select @next =@next +1

  end

  if @location =0 select @location =len(@str)+1 --如果是因为没有逗号退出,则认为逗号在字符串后

  select @str_return = substring(@str,@start,@location -@start) --@start肯定是逗号之后的位置或者就是初始值

  if (@index <> @next ) select @str_return = '' --如果二者不相等,则是因为逗号太少,或者@index小于@next的初始值。

  return @str_return

end

 

--测试示例

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

 

--运行结果

/*

4

*/

 

--备注:类似功能的函数happyflystone (无枪狙击手)也写过一个,参数上做了扩展,可以定义分隔符了,在【叶子函数分享十六】我曾经发过。

原创粉丝点击