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('') 查询出来的结果就是模式,这样就可以用上面的方法了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在 SQL SERVER 中快速有条件删除海量数据
- linux下perl操作mysql数据库(需要安装DBI)
- sql – 使用`CROSS APPLY`和`OUTER APPLY`的行为不一致
- SQL Server连接中三个最常见错误原因分析
- SQLSERVER 中sp_who, sp_who2和sp_who3
- sql – 如何创建可选择搜索列的存储过程?
- SqlServer2008 访问接口 Sybase ASEOLEDB Provider 连接失败
- sql-server – 为什么count()函数需要一个参数?
- SQLServer中char、varchar、nchar、nvarchar的区别
- 用登录名连接sqlServer数据库的注意事项