我正在使用SQL Server。
我有两张这样的表:
表1 :
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE61...
表2 :
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE62...
我希望得到一个输出表,它将比较两个表中的所有点,并显示table1
的{{1}}位于GeoLoc
的X距离内的位置GeoLoc
。
有谁知道如何解决这个问题?一个表有大约800行,另一个表有大约300,000行。我甚至难以开始......
答案 0 :(得分:6)
假设您的GeoLoc列属于SQL Server中的“Geography”数据类型,您应该可以使用以下内容:
select
t1.*,
t2.*,
t1.GeoLoc.STDistance(t2.GeoLoc) as DistanceApart
from table1 t1
join table2 t2
on (t1.GeoLoc.STDistance(t2.GeoLoc) <= @distanceX)
“DistanceApart”和“distanceX”值以米为单位