我有一个包含多个记录的表,每个记录都包含一个名为“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
和基本的插入和更新。