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 – HIVE中的LIMIT条款是否真的是随机的?
- 数据库 – 使用Postgresql设置elasticSearch
- SQL多个外键作为主键
- SQLServer 镜像功能完全实现
- sql-server-2008-r2 – SQL Server 2008 R2中nte
- sqlserver 存储过程中的top+变量使用分析(downmo
- SQL Server OBJECTPROPERTY与sp_rename更改对象名
- ROW_NUMBER SQL Server 2005的LIMIT功能实现(ROW
- sql-server-2005 – 如何使用SQL脚本在SQL Serve
- sql – 如何在oracle中将csv转换为表
