专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Sql Server

一个关于字符串拆分的有关问题。

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
一个关于字符串拆分的问题。急
declare   str   varchar(100)
set   str= 'aa,b,cd,de,ed '
我要把str按照逗号分割拆开后再循环所有的值将其加来,应该怎么做?
谢谢。不要告诉我去掉逗号就可以了,我主要是拆开后要循环。

------解决方案--------------------
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
/*--实现split功能 的函数
--date :2005-4-20
--Author :Domino
*/
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i> =1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql <> ' '
insert @temp values(@SourceSql)
return
end


select * from dbo.f_split( '山东:济南:山东:济南 ', ': ')

select top 1 * from f_split( '山东:济南 ', ': ')
------解决方案--------------------
declare @str varchar(100)
set @str= 'aa,b,cd,de,ed '
declare @sql varchar(8000)
select @sql= 'select ' ' '
select @sql=@sql+replace(@str, ', ', ' ' ' union all select ' ' ')+ ' ' ' '
exec(@sql)

--result
----
aa
b
cd
de
ed

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: