gpt4 book ai didi

sql - 计算距离时,我的查询收到以下错误

转载 作者:行者123 更新时间:2023-12-04 20:30:31 24 4
gpt4 key购买 nike

我收到以下错误“发生了无效的浮点运算”。当我运行这个查询时:

SELECT PolID, LocID, Address, City, StateCode, OrigGeoLat, OrigGeoLong, NewGeoLat, NewGeoLong, 
acos(sin(radians(OrigGeoLat)) * sin(radians(NewGeoLat)) +
cos(radians(OrigGeoLat)) * cos(radians(NewGeoLat)) *
cos(radians(OrigGeoLong - NewGeoLong))) * 6372.8 as Distance
FROM zzGeoDataTMP

所有 *geoLat 和 *geoLong 数据都定义为 numeric(18,10)。当我运行查询时,我开始取回数据,然后在特定的数据行上出现错误。例如,只有在调用 ACOS 函数时,以下行才会引发上述异常:

OrigGeoLat|OrigGeoLong|NewGeoLat|NewGeoLong
---------------------------------------------
32.9364620|-80.0411000|32.9364620|-80.0411000

非常感谢您提供任何可以提供帮助的见解!

最佳答案

您的计算正在累积一些小错误,这意味着计算值(传递给 ACOS)高于 1。尝试用 ROUND 包装它调用:

acos(ROUND(sin(radians(OrigGeoLat)) * sin(radians(NewGeoLat)) +
cos(radians(OrigGeoLat)) * cos(radians(NewGeoLat)) *
cos(radians(OrigGeoLong - NewGeoLong)),15)
)

我们保持小数点后 15 位的准确性。

关于sql - 计算距离时,我的查询收到以下错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397189/

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