SQL Server语句查询指定位置(经纬度)范围内信息
Posted name_小柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server语句查询指定位置(经纬度)范围内信息相关的知识,希望对你有一定的参考价值。
指定一个经纬度,给定一个范围值,查出在经纬度周围这个范围内距离最近的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)
以上是关于SQL Server语句查询指定位置(经纬度)范围内信息的主要内容,如果未能解决你的问题,请参考以下文章
翻译SQL最近位置查询语句(MySQLPostgreSQLSQL Server)
已知经纬度,如何确定其所在的省市呢?急求资料和思路~~~感激涕零
SQL server数据库统计指定字段符合数组中指定个数的SQL语句写法