2

SQLServerを使用しています。

私はこのような2つのテーブルを持っています:

表1

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

表2

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

両方のテーブルのすべてのポイントを比較する出力テーブルを取得し、のX距離内にあるがどこtable1にあるかを示します。GeoLocGeoLoctable2

誰かがこれについて行く方法を知っていますか?1つのテーブルには約800行があり、もう1つのテーブルには約300,000行があります。どこから始めたらいいのかわからない…

4

1 に答える 1

7

GeoLoc列がSQLサーバーの「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'の値はメートル単位です

于 2012-12-06T16:15:13.933 に答える