指定一個經緯度,給定一個范圍值,查出在經緯度周圍這個范圍內距離最近的5組數據。
經度:116.312785
緯度:39.929875
范圍:1度(111公里)
LONG為數據表經度字段
LAT為數據表緯度字段
CENTER為數據表
該語句在SQL Server下測試通過,其他數據庫可能需要修改
該語句在SQL Server下測試通過,其他數據庫可能需要修改

SELECT
TOP 5 *, ACOS(
SIN(
(39.929875 * PI()) / 180
) * SIN(
(LAT * PI()) / 180
) COS(
(39.929875 * PI()) / 180
) * COS(
(LAT * PI()) / 180
) * COS(
(116.312785 * PI()) / 180 - (LONG * PI()) / 180
)
) * 6380 AS aa
FROM
CENTER
WHERE
LAT > 39.929875 - 1
AND LAT <39.929875 1
AND LONG >116.312785 - 1
AND LONG < 116.312785 1
ORDER BY aa
---------------------------------------------------------------------------------------
若數據類型不是float型,需要轉換為float型:CAST(LAT AS FLOAT)