Sql Lat长距离计算
我正在尝试使用下面的查询获取以米为单位的距离。但每次运行查询时,都会出现以下错误: 错误的事件异常:ORA-01428 ReasonORA-01428:OracleExecutionException:参数“1.0000000000000000000000000000000000000 1”超出范围Sql Lat长距离计算,sql,oracle,Sql,Oracle,我正在尝试使用下面的查询获取以米为单位的距离。但每次运行查询时,都会出现以下错误: 错误的事件异常:ORA-01428 ReasonORA-01428:OracleExecutionException:参数“1.0000000000000000000000000000000000000 1”超出范围 可能您对ACOS函数有问题 例:如果你想像这样使用acos函数;助理文书主任(x) x的值应在[-1,1]范围内 您可以在本文中阅读更多信息。如前所述,ACOS必须是[-1,1]。 此查询可能适用于
可能您对ACOS函数有问题 例:如果你想像这样使用acos函数;助理文书主任(x) x的值应在[-1,1]范围内
您可以在本文中阅读更多信息。如前所述,ACOS必须是[-1,1]。 此查询可能适用于以下情况:
SELECT station,
name,
id,
a.latitude,
a.longitude,
h.latitude as a_latitude,
h.longitude as a_longitude,
ACOS(ROUND(COS(ACOS(-1)/180*(90-a.latitude))*COS(ACOS(-1)/180*(90-h.latitude))+SIN(ACOS(-1)/180*(90-a.latitude))*SIN(ACOS(-1)/180*(90-h.latitude))*COS(ACOS(-1)/180*(a.longitude-h.longitude)), 20)) * 6371000 as Distance_in_metres
FROM
address1 h,
ADDRESSES a
你真的从MySQL服务器上得到了“ORA-01428 ReasonORA-01428:OracleExecutionException”吗?我使用的是oracle而不是MySQL服务器,那么为什么要使用MySQL标签呢?如果你改为标记Oracle,你会更快地得到更好的答案!经度和纬度列的数据类型是什么?如果使用浮点数据类型而不是数字数据类型,可能会出现舍入错误?我们使用的是数字数据类型
SELECT station,
name,
id,
a.latitude,
a.longitude,
h.latitude as a_latitude,
h.longitude as a_longitude,
ACOS(ROUND(COS(ACOS(-1)/180*(90-a.latitude))*COS(ACOS(-1)/180*(90-h.latitude))+SIN(ACOS(-1)/180*(90-a.latitude))*SIN(ACOS(-1)/180*(90-h.latitude))*COS(ACOS(-1)/180*(a.longitude-h.longitude)), 20)) * 6371000 as Distance_in_metres
FROM
address1 h,
ADDRESSES a