gpt4 book ai didi

sql - 如何在 SQL Server 数据库表中使用 X 和 Y 网格坐标选择一圈数据?

转载 作者:行者123 更新时间:2023-12-01 12:29:12 26 4
gpt4 key购买 nike

这很有趣,很抱歉缺少信息,但我不知道如何处理这个问题。

我有一个 SQL Server 数据库,它存储与邮政区号相对应的 map 坐标。例如,邮政区号 BD6 沿 X 轴位于 414300m,沿 Y 轴位于 429800m。这些值在一个表中,在三个单独的列中,例如:

PostAreaCode    AlongXAxis    AlongYAxis
BD6 414300 429800

我需要选择特定邮政区号 161 公里半径范围内的所有邮政区号。比如BD6坐标在圆心,圆边161km。

我可以使用 BETWEEN 关键字在 BD6 周围创建一个正方形并执行类似...

SELECT PostAreaCode
FROM PostAreaCodeTable
WHERE AlongXAxis IS BETWEEN (414300-161000) AND (414300+161000)
AND AlongYAxis IS BETWEEN (429800-161000) AND (429800+161000)

...但是我不知道如何把它变成一个圆圈。我认为自己非常擅长 SQL,但这完全超出了我的能力范围。任何帮助深表感谢!请尽可能多地解释数学答案,因为数学不是我的强项。谢谢!

最佳答案

您可以使用公式 (x-a)^2 + (y-b)^2 <= r^2作为你的 where 子句。 ab是中心的坐标,xy是您要检查的点的坐标,r是半径。所以,在你的情况下,a是中心的 X 坐标,b是中心的 Y 坐标,而 xy是其他点的X和Y轴坐标的列名。

SQL 将是:

SELECT PostAreaCode
FROM PostAreaCodeTable
WHERE ((AlongXAxis - 414300)^2 + (AlongYAxis - 429800)^2) <= (161000)^2

关于sql - 如何在 SQL Server 数据库表中使用 X 和 Y 网格坐标选择一圈数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020265/

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