想把这字符串中的三个红字字符截取出来,请前辈帮下忙,怎样来写语句?
http://212.205.132.228/sim/googleMap.html?longitude=103.93440&latitude=21.73334&area=中国北京海淀区第一个字符:103.93440,第一个"="与第一个"&"号之间
第二个字符:21.73334 ,第二个"="与第一个"&"号之间
第三个字符:中国北京海淀区,第三个"="之后的所有字符

解决方案 »

  1.   

    参考
    [sql server] 各种字符串拆分函数 及 实例 
    http://blog.csdn.net/xys_777/archive/2010/06/21/5684377.aspx
      

  2.   

    declare @str varchar(100)
    set @str='http://212.205.132.228/sim/googleMap.html?longitude=103.93440&latitude=21.73334&area=中国北京海淀区'print substring(@str,charindex('=',@str)+1,charindex('&',@str)-(charindex('=',@str)+1))set @str=stuff(@str,1,charindex('&',@str),'')print substring(@str,charindex('=',@str)+1,charindex('&',@str)-(charindex('=',@str)+1))set @str=stuff(@str,1,charindex('=',@str),'')print stuff(@str,1,charindex('=',@str),'')
      

  3.   

    declare @str varchar(100)
    set @str='http://212.205.132.228/sim/googleMap.html?longitude=103.93440&latitude=21.73334&area=中国北京海淀区'print substring(@str,charindex('=',@str)+1,charindex('&',@str)-(charindex('=',@str)+1))print substring(stuff(@str,1,charindex('&',@str),''),charindex('=',stuff(@str,1,charindex('&',@str),''))+1,charindex('&',stuff(@str,1,charindex('&',@str),''))-(charindex('=',stuff(@str,1,charindex('&',@str),''))+1))print reverse(stuff(reverse(@str),charindex('=',reverse(@str)),len(@str)-charindex('=',reverse(@str))+1,''))
      

  4.   


    /*按照符号分割字符串*/
    create function [dbo].[m_split](@c varchar(2000),@split varchar(2))   
      returns @t table(col varchar(200))   
      as   
        begin   
          while(charindex(@split,@c)<>0)   
            begin   
              insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))   
                set @c = stuff(@c,1,charindex(@split,@c),'') 
               -- SET @c = substring(@c,charindex(' ',@c)+1,len(@c))     
            end   
          insert @t(col) values (@c)   
          return   
    end
    go
    declare @d varchar(200)
    set @d='http://212.205.132.228/sim/googleMap.html?longitude=103.93440&latitude=21.73334&area=中国北京海淀区'
    select 
    case charindex('&',col) when 0
    then
    col
    else 
    substring(col,1,charindex('&',col)-1) 
    end
    as col
    from dbo.m_split(@d,'=')
    where charindex('http',col)=0/*
    col
    -------------------
    103.93440
    21.73334
    中国北京海淀区
    */