2

我正在使用 SQL Server。

我有两个这样的表:

表 1

Column1, Column2, Column3, GeoLoc
-----------------------------------
a        b        c        0xE61...

表2

Column1, Column2, Column3, GeoLoc 
-----------------------------------
a        b        c        0xE62...

我正在寻找一个输出表,它将比较两个表中的所有点,并告诉我哪里table1有一个GeoLoc在 X 距离内的GeoLocin table2

有谁知道该怎么做?一个表有大约 800 行,另一个有大约 300,000 行。我什至不知道从哪里开始......

4

1 回答 1

7

假设您的 GeoLoc 列是 SQL 服务器中的“地理”数据类型,您应该能够使用如下内容:

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' 值以米为单位

于 2012-12-06T16:15:13.933 回答