Oracle错误:缺少右括号

时间:2016-10-24 06:38:01

标签: sql oracle

这是我的代码:

SELECT SIGHTING_ID,MAX((SQRT(POWER(LATITUDE-(-28),2)+(POWER(LONGITUDE-151,2)) AS DISTANCE
FROM SIGHTINGS

我认为问题是支架。我尝试了很多组合,但错误仍然在这里。我该怎么做或查询错了?

2 个答案:

答案 0 :(得分:1)

包含的Group By子句,因为您在查询中使用MAX函数。

SELECT SIGHTING_ID,
       MAX(SQRT(POWER(LATITUDE-(-28),2)+POWER(LONGITUDE-151,2))) AS DISTANCE 
FROM   SIGHTINGS 
GROUP BY SIGHTING_ID;

答案 1 :(得分:0)

如错误所述,您错过了右括号。这是正确的查询

SELECT SIGHTING_ID,
       Max(Sqrt(Power(LATITUDE - ( -28 ), 2) + ( Power(LONGITUDE - 151, 2) ))) AS DISTANCE
FROM   SIGHTINGS                                                          --^^
GROUP BY SIGHTING_ID         

添加了两个右括号并删除了一个不需要的左括号。以上查询返回每个SIGHTING_ID

的最大距离

如果你只有最大距离的记录,那么试试这个

SELECT *
FROM   (SELECT SIGHTING_ID,
               Sqrt(Power(LATITUDE - ( -28 ), 2) + ( Power(LONGITUDE - 151, 2) )) AS DISTANCE
        FROM   SIGHTINGS
        ORDER  BY DISTANCE DESC) 
WHERE  ROWNUM = 1