求助:要从一个字段中,取出长度不固定的值:
举例:表中有字段 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 无法实现

解决方案 »

  1.   

    create table tb(cj nvarchar(100))
    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
      

  2.   


    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
    */
      

  3.   

    SUBSTRING (re,CHARINDEX ('绩',re)+1,CHARINDEX ('分',re)-CHARINDEX ('绩',re)-1) 谢谢各位!!