首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误消息: ORA-00923: FROM关键字未在预期的位置找到

错误消息: ORA-00923: FROM关键字未在预期的位置找到
EN

Stack Overflow用户
提问于 2016-10-24 01:28:40
回答 3查看 3.9K关注 0票数 2

因此,我目前正在处理一个oracle查询,希望获取最大的sighting_distance及其相应的sighting_id值,但是我继续运行ORA-00923: FROM关键字not,在预期的错误位置。有什么办法纠正这个错误吗?

代码语言:javascript
复制
SELECT TOP 1 SIGHTING_ID, sqrt(((-28 - LATITUDE)*(-28 - LATITUDE)) + ((151 - LONGITUDE)*(151 - LONGITUDE))) AS "SIGHTING_DISTANCE" 
FROM(
    SELECT SIGHTING_ID, longitude, latitude 
    FROM SIGHTINGS)
GROUP BY SIGHTING_DISTANCE
ORDER BY ASC;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-24 01:33:14

我不认为甲骨文有TOP关键字。相反,尝试使用ROWNUM

代码语言:javascript
复制
SELECT *
FROM
(
    SELECT SIGHTING_ID,
           SQRT(((-28 - LATITUDE)*(-28 - LATITUDE)) + ((151 - LONGITUDE)*(151 - LONGITUDE))) AS "SIGHTING_DISTANCE" 
    FROM SIGHTINGS
    ORDER BY "SIGHTING_DISTANCE" DESC
)
WHERE ROWNUM = 1

我还修复了您的查询中的其他一些问题。您不需要使用GROUP BY获取最大距离,而且在任何情况下,您选择的都是非聚合列的可见ID。另外,您不需要原始子查询。

票数 3
EN

Stack Overflow用户

发布于 2016-10-24 01:31:33

选择Oracle中不存在的顶级1。选择子查询中的所有内容,命令子查询,然后再次选择"where ROWMUM = 1“。(还有很多其他方法可以做到这一点--如果您有Oracle 12,则有一个非常类似于"TOP 1“的新特性。)

票数 0
EN

Stack Overflow用户

发布于 2016-10-24 01:33:30

使用WHERE ROWNUM = 1而不是TOP

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40209558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档