我想查询 一个字符串的信息 ,比方说‘wow.01.02.wow’
最后一次.出现的左边跟右边的数据 
意思就是说我想查出来wow.01.02与wow 这个语法该怎么写
这个字符串中.不一定出现几次 也许一次 也许n次

解决方案 »

  1.   

    select reverse(right('wow.01.02.wow', charindex('.',reverse('wow.01.02.wow'))-1)) --最后一个'.'右边数据
    select left('wow.01.02.wow',len('wow.01.02.wow')- charindex('.',reverse('wow.01.02.wow'))) --最后一个'.'左边边数据
      

  2.   

    你的语句不对啊 select reverse(right('wow.01.02.01', charindex('.',reverse('wow.01.02.01'))-1))
    如果这么查的话不是01 而是10啊
      

  3.   

    去除reverseselect 
    right('wow.01.02.wow', charindex('.',reverse('wow.01.02.wow'))-1)
      

  4.   


    declare @s varchar(100)
    set @s='ww.123.456.www'
    select 
     [右]= right(@s, case when charindex('.',Reverse(@s))>1 then charindex('.',Reverse(@s))-1 else len(@s) end)
    ,[左]= Left(@s,len(@s)-case when charindex('.',Reverse(@s))>0 then charindex('.',Reverse(@s)) else 0 end)