Wal*_*ler 2 sql sql-server sqlgeography
我正在使用SQL Server.
我有两个这样的表:
表1:
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE61...
Run Code Online (Sandbox Code Playgroud)
表2:
Column1, Column2, Column3, GeoLoc
-----------------------------------
a b c 0xE62...
Run Code Online (Sandbox Code Playgroud)
我希望得到一个输出表,它将比较两个表中的所有点,并告诉我哪里table1有一个GeoLoc在X距离内GeoLoc的位置table2.
有谁知道如何去做?一个表有大约800行,另一个表有大约300,000行.我甚至难以开始......
假设您的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)
Run Code Online (Sandbox Code Playgroud)
'DistanceApart'和'distanceX'值以米为单位
| 归档时间: |
|
| 查看次数: |
2114 次 |
| 最近记录: |