加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL利于CHARINDEX循环

发布时间:2020-12-12 09:04:28 所属栏目:MsSql教程 来源:网络整理
导读:对于在SQL里循环是件挺难受的事,虽然可以利用游标,但是游标的表如果正在被频繁使用那就悲剧了,于是只能想别的方法循环了,这里利用CHARINDEX循环。循环的模式可以是存储过程查询传递过来的内含规则的变量,也可以是数据库数据,如果是传递的变量看下面的

对于在SQL里循环是件挺难受的事,虽然可以利用游标,但是游标的表如果正在被频繁使用那就悲剧了,于是只能想别的方法循环了,这里利用CHARINDEX循环。循环的模式可以是存储过程查询传递过来的内含规则的变量,也可以是数据库数据,如果是传递的变量看下面的代码即可。

declare @str varchar(100) --字符串declare @k int --字符串的断点位置 数值型declare @start int --当前字符串开始位置set @str=''set @start=2set @k=charindex('>',@str,@start)

--print 'f'+substring(@str,2)while @k>0begin ?print '当前位置'+cast(@k as char(5))declare @nowstr varchar(100)set @nowstr=substring(@str,@start,@k-@start)--断点位置减去开始位置 为字符串长度print '字符串开始位置'+cast(@start as char(5))? +'截取数量'+cast(@k-@start as char(5))+''

--使用字符串@nowstr 操作

set @start=@k+2 --重设开始截取字符串位置print '截取的字符串

set? @k=charindex('>',@k+1)

end

如果是数据库的数据,那就得先查询出来,才能遍历,怎么查询呢?利于SQL的FOR XML PATH('')

Select id from table FOR XML PATH('')

查询出来的结果就是模式,这样就可以用上面的方法了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读