字符串取值,请亲们帮忙,谢谢!

songben96998 技术经理  2015-09-21 04:31:22
这个字符串“生产线滚平线:130+238+130;产板印刷间隔2-4h.”或“摇盖保够150,滚线:150+1238.”

我只要自动取出“130+238+130”或“150+1238”,不要前或后的其他数字,长度和位置都不是固定的,请教亲们sql2000怎么实现
...全文
115 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
songben96998 2015-09-22
谢谢亲们的关注和指引,现在基本可以取出我想要的数据了
回复
songben96998 2015-09-22
declare @s varchar(100) declare @i int declare @j int declare @k int declare @len int declare @str1 varchar(100) set @s='产板印刷间隔2-4h.生产线滚平线:130+238+130;' set @str1='' set @len=len(@s) set @i=1 set @j=1 set @k=1 while @i<=@len begin if isnumeric(substring(@s,@i,1))>0 begin set @j=@i if isnumeric(substring(@s,@j,1))>0 and isnumeric(substring(@s,@j+1,1))>0 and isnumeric(substring(@s,@j+2,1))>0 and isnumeric(substring(@s,@j+3,1))>0 and isnumeric(substring(@s,@j+4,1))>0 and isnumeric(substring(@s,@j+5,1))>0 begin set @k=1 while isnumeric(substring(@s,@j,1))>0 and @k<=12 begin set @str1=@str1+substring(@s,@j,1) set @k=@k+1 set @j=@j+1 end if @k<7 begin set @str1='' end end end else begin set @str1=@str1+'' end set @i=@i+@k end select @str1 这个基本上可以了
回复
Haytor 2015-09-22
你最好多提供一些数据样本,大家才给你分析分析。
回复
songben96998 2015-09-22
有+号连接的连续7-12位,比如130+1550+130 120+1250 220+995等等,因为这是人工输入的,没有特定的符号作开始或结尾
回复
zbdzjx 2015-09-22
目前能想到的,只有一个字符一个字符的去读,判断是不是想要的。
回复
qq_17482963 2015-09-21
不然的话谁知道你想要截取什么值
回复
qq_17482963 2015-09-21
或者说你的字符串有没有规律,比如说要截取的值在冒号和分号或者句号之间之类的规律
回复
songben96998 2015-09-21
就是不固定,不好取,还有个条件就是需要的尺寸字符串都在6位长度以上,其他的不用数字都在4位以下
回复
‘生产线滚平线:’‘ 滚线:’ 这两个固定的话就比较好取了
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-09-21 04:31
社区公告
暂无公告