You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL报错ORA-00923求助:FROM关键字位置异常

ORA-00923: FROM keyword not found where expected 错误解决方案

问题原因

Oracle SQL不允许在SELECT子句中直接将*与其他列表达式(比如你使用的RANK()函数)并列使用,这就是报错指向select *,'的核心原因——Oracle无法解析这种语法结构。

修复方案

有两种可行的修改方式,都能保留你的排名逻辑:

方案1:显式列出所有列

将*替换成CTE中定义的具体列名,再添加排名列:

with counts AS (
select country_cd, count(*) as cnt
from country_use_def
group by country_cd)
select country_cd, cnt, RANK() OVER(ORDER BY cnt DESC) as rank
from counts;

方案2:用表别名限定*

通过CTE的名称作为表别名来限定*,明确指定是该表的所有列,再添加排名列:

with counts AS (
select country_cd, count(*) as cnt
from country_use_def
group by country_cd)
select counts.*, RANK() OVER(ORDER BY cnt DESC) as rank
from counts;

说明

方案1的优势是直观清晰,能明确看到查询返回的所有列;方案2更便于维护,后续若CTE的列有变动,无需修改SELECT子句的列列表。

内容的提问来源于stack exchange,提问作者BigJim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 19:22:03