SQL Server 自定义字符串分割函数

发表于:2015-5-29 11:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:KenmuHuang    来源:51Testing软件测试网采编

  三、结合上边两个函数,像数组一样遍历字符串中的元素(表值函数)
  1 create function Func_SplitStr(@SourceSql varchar(8000), @StrSeprate varchar(100))
  2   returns @temp table(F1 varchar(100))
  3   as
  4   begin
  5   declare @ch as varchar(100)
  6   set @SourceSql=@SourceSql+@StrSeprate
  7   while(@SourceSql<>'')
  8   begin
  9     set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)
  10     insert @temp values(@ch)
  11     set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
  12   end
  13   return
  14   end
  15 go
  ----调用
  select * from dbo.Func_SplitStr('1,2,3,4',',')
  --结果:
  1
  2
  3
  4
  另一种方式(表值函数):
  1 create function Func_SplitStr(@str nvarchar(2000),@split nvarchar(2))
  2 returns @t table(AccountCodeID int )
  3 as
  4 begin
  5 declare @tmpAccountCodeID int,@getIndex int
  6 set  @getIndex=charindex(',',@str)
  7 while(@getIndex<>0)
  8 begin
  9     set @tmpAccountCodeID=convert(int,substring(@str,1,@getIndex-1))
  10     insert into @t(AccountCodeID) values (@tmpAccountCodeID)
  11     set @str=stuff(@str,1,@getIndex,'')
  12     set  @getIndex=charindex(',',@str)
  13 end
  14 insert into @t(AccountCodeID) values (@str)
  15 return
  16 end
  17 go
  ----调用
  select * from dbo.Func_SplitStr('1,2,3,4',',')
  --结果:
  1
  2
  3
  4
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号