gpt4 book ai didi

sql-server-2008 - 查询将特定地理距离内的行返回给定行(使用sql server 2008)

转载 作者:行者123 更新时间:2023-12-02 02:35:25 25 4
gpt4 key购买 nike

我有一个包含多个记录的表,每个记录都包含一个名为“coords”的字段。此字段已使用地理点更新。

UPDATE testing SET [coords] = geography::Point(52.029736, -113.973541, 4326)
WHERE id=2"

我需要做的是......当用户登录时,他们有一个属于他们的记录,因为这个例子说它的记录 ID #1。他们需要访问一个页面,该页面显示“坐标”字段位于一定距离内的所有其他记录。

这是我想到的最好的;

第一,我可以找到与这个语句协调的开始;

SELECT coords FROM testing WHERE id=1

这给了我原始坐标作为 coords.Lat 和 coords.Long

那我想找附近的,所以有了这个;

SELECT * FROM testing WHERE coords.STDistance() <=(20 * 1609.344)

我不知道如何将原始坐标放入第二个语句中以使其工作。

我是否需要一个存储过程,或者我能否以某种方式将 coords.Lat/coords.Long 放在 STDistance 的括号内?还是我完全偏离了我期望它如何工作的基础。

仅供引用,我对 sql server 的经验很少,我从来没有做过任何“高级”的事情,只有简单的 select * from table where record = 1 和基本的插入和更新。

最佳答案

这行得通吗?

SELECT
[near].*
FROM
testing [near]
INNER JOIN
testing [user] ON
[user].coords.STDistance( [near].coords ) < (20 * 1609.344)
WHERE
[user].id = 1

关于sql-server-2008 - 查询将特定地理距离内的行返回给定行(使用sql server 2008),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com