SQL Server:根据最小距离对数据进行排名

时间:2014-12-23 14:11:46

标签: sql sql-server tsql ranking row-number

我有两个城市表格,如下所示:

表1

Place.1 | Latitude.1 | Longitude.1

表2

Place.2 | Latitude.2 | Longitude.2

这两个表中的很多地方是相同的,但我不能根据Place名称加入它们,因为它们使用不同的语言,因此我考虑根据最小距离加入。

有一种方法可以计算球体上两点之间的大圆距离(我已经实现了这个功能)。任何想法如何在表1中找到表2中每个地方最近的位置??

非常感谢您的帮助!

亚历

1 个答案:

答案 0 :(得分:1)

您可以使用cross apply

select t1.*, t2.*
from table1 t1 cross apply
     (select top 1 t2.*
      from table2 t2
      order by distance(t1, t2)  -- put your appropriate function here
     ) t2;