Sql根据经维度查询距离我最近的xx

declare @longitude decimal(18,7) --经度
declare @latitude decimal(18,7) --维度
set @longitude=119.921001 
set @latitude=35.943285
declare @radius decimal(18,7)
set @radius=6371  --地球半径
select *,sqrt(  
    (  
     ((@longitude-longitude)*PI()*@radius*cos(((@latitude+latitude)/2)*PI()/180)/180)  
     *  
     ((@longitude-longitude)*PI()*@radius*cos (((@latitude+latitude)/2)*PI()/180)/180)  
    )  
    +  
    (  
     ((@latitude-latitude)*PI()*@radius/180)  
     *  
     ((@latitude-latitude)*PI()*@radius/180)  
    )  
) as l from tb where l<1 --(1公里范围内)

你可能感兴趣的:(SQL)