求助:要从一个字段中,取出长度不固定的值:
举例:表中有字段 A,要从字段A中挖出某个数值,其长度不固定:
列 A
2010年10月01日总成绩200分
2010年10月02日总成绩10分
2010年10月10日总成绩1分
2010年10月30日总成绩0.1分要从这个列中挖出: 200、10、1、0.1 这样的数值;其中这个列中的数据都是这样的格式,只是其中数值有变化,都是“2010年10月%%日总成绩**分”
要挖出**这样的值;不知sql怎么写,或者函数怎么用;
我尝试用substring 无法实现
举例:表中有字段 A,要从字段A中挖出某个数值,其长度不固定:
列 A
2010年10月01日总成绩200分
2010年10月02日总成绩10分
2010年10月10日总成绩1分
2010年10月30日总成绩0.1分要从这个列中挖出: 200、10、1、0.1 这样的数值;其中这个列中的数据都是这样的格式,只是其中数值有变化,都是“2010年10月%%日总成绩**分”
要挖出**这样的值;不知sql怎么写,或者函数怎么用;
我尝试用substring 无法实现
insert into tb select '2010年10月01日总成绩200分'
insert into tb select '2010年10月02日总成绩10分'
insert into tb select '2010年10月10日总成绩1分'
insert into tb select '2010年10月30日总成绩0.1分'
go
select replace(right(cj,len(cj)-charindex('总成绩',cj)-2),'分','')成绩 from tb
/*
成绩
--------------------------------------------
200
10
1
0.1(4 行受影响)*/
go
drop table tb
declare @table table (A varchar(25))
insert into @table
select '2010年10月01日总成绩200分' union all
select '2010年10月02日总成绩10分' union all
select '2010年10月10日总成绩1分' union all
select '2010年10月30日总成绩0.1分'select A=substring(A,
charindex('总成绩',A)+len('总成绩'),
charindex('分',A)-len('分')-(charindex('总成绩',A)+len('总成绩'))+1)
from @table
/*
A
-------------------------
200
10
1
0.1
*/