VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 605|回复: 2

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

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-10 21:40:01 | 显示全部楼层 |阅读模式
declare str varchar(100)
set str='aa,b,cd,de,ed'
我要把str按照逗号分割拆开后再循环所有的值将其加来,应该怎么做?
谢谢。不要告诉我去掉逗号就可以了,我主要是拆开后要循环。
回复

使用道具 举报

0

主题

14

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-1-13 18:27:01 | 显示全部楼层
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('山东:济南',':')
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-1-14 10:18:01 | 显示全部楼层
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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表