请问下高手问,例如我有个字段值是 3.99*1.22*2.3(打个比方,就是 X1 * X2 * X3 的,要取X3) 我想取2.3这个数,请问下可以用sql语句怎么取?

解决方案 »

  1.   

    substring(col,len(col)-3,len(col))仅针对 2.3的情况!
      

  2.   

    本帖最后由 roy_88 于 2010-01-13 11:25:43 编辑
      

  3.   

    select right('3.99*1.22*2.3', charindex('*',REVERSE('3.99*1.22*2.3'))-1)
      

  4.   

    select  parsename(replace('3.99*1.22*2.3','*','.'),1)
      

  5.   

    decalre @s varchar(20)
    set @s='3.99*1.22*2.3'
    select right(@s, charindex('*',REVERSE(@s))-1)
      

  6.   

    declare @s varchar(20)
    set @s='3.99*1.22*2.3'
    select right(@s, charindex('*',REVERSE(@s))-1)
      

  7.   

    select left(reverse(Col),charindex('*',reverse(Col))-1)
      

  8.   

    --错了
    select reverse(left(reverse(Col),charindex('*',reverse(Col))-1))
      

  9.   

    declare @s varchar(20)
    set @s='3.99*1.22*2.3'
    select REVERSE(LEFT(REVERSE(@s), charindex('*',REVERSE(@s))-1))
                         
    -------------------- 
    2.3(所影响的行数为 1 行)
      

  10.   

    这个是对个别情况而已...
    我做想做得就是能取到 X1 * X2 * x3 这个3个数。。
      

  11.   

    declare @s varchar(20)
    set @s='3.99*1.22*2.3'
    declare @SQL varchar(100)
    SELECT @SQL='SELECT COL='+REPLACE(@S,'*',' UNION ALL SELECT ')
    EXEC(@SQL)
    COL   
    ----- 
    3.99
    1.22
    2.30