>>create table test (Latitude decimal(30,10), Longitude decimal (30,10)) >> >>declare @CenterLat float=47.7795 >>declare @CenterLon float=-65.7191 >>declare @SearchDistance float=250 >> >> select * from (select * from test T >> cross apply (select SIN(@CenterLat/57.2957795130823) * SIN(Latitude/57.2957795130823) + >> COS(@CenterLat/57.2957795130823) * COS(Latitude/57.2957795130823) * >> COS(Longitude/57.2957795130823 -@CenterLon/57.2957795130823) as Temp) Temp >> where (latitude>=@CenterLat - @SearchDistance/111.0 and latitude<=@CenterLat + @SearchDistance/111.0) and >> (longitude>=@CenterLon - @SearchDistance/111.0 and longitude<=@CenterLon + @SearchDistance/111.0)) X >> where 3958.75586574 * ACOS(case when Temp > 1 then 1 when Temp < -1 then -1 else Temp end) <=@SearchDistance>