小编Ono*_*alp的帖子

SQL地理纬度/经度距离计算

我无法使用地理来计算使用我的表格格式的英里距离.

两个位置的纬度和经度并排:

id | A_Latitude | A_Longitude | B_Latitude | B_Longitude
Run Code Online (Sandbox Code Playgroud)

我试图让的地步A,与点一起B,并返回之间的距离A,并B以英里.

我尝试了一些东西,包括类似的东西:

DECLARE @orig geography 
DECLARE @end geography
SELECT
@orig = geography::Point(A_LATITUDE, A_LONGITUDE, 4326) 
,@end = geography::Point(B_LATITUDE, B_LONGITUDE, 4326) 
FROM table1
SELECT 
    ROUND(@END.STDistance(@ORIG)/1609.344,2) AS MILES
    ,@END.STDistance(@ORIG) AS METERS
    ,table1.*
FROM table1;
Run Code Online (Sandbox Code Playgroud)

我在所有行中获得里程和米的重复值.任何人都可以建议我应该如何构建此查询以获取我正在寻找的内容?

编辑:谢谢SQL冲浪!

WITH X AS 
(SELECT 
 geography::Point(A_LATITUDE, A_LONGITUDE, 4326) A
,geography::Point(B_LATITUDE, B_LONGITUDE, 4326) B
,ID
FROM TABLE1)

SELECT 
ROUND(X.B.STDistance(X.A)/1609.344,2) AS MILES
,X.B.STDistance(X.A) AS METERS
,T.*
FROM TABLE1 T
LEFT JOIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sqlgeography

4
推荐指数
1
解决办法
1174
查看次数

标签 统计

sql ×1

sql-server ×1

sqlgeography ×1