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
*/
[MSSQL]获取指定索引的值的函数
最新推荐文章于 2024-04-03 09:24:07 发布
本文介绍了一个SQL函数getstrofindex,该函数用于从带有逗号分隔的字符串中获取指定索引位置的子串。通过定义变量和使用循环结构,实现了灵活地定位并返回特定子串的功能。
1320

被折叠的 条评论
为什么被折叠?



