Oracle SQL Developer 中的分析函数抛出错误

Posted

技术标签:

【中文标题】Oracle SQL Developer 中的分析函数抛出错误【英文标题】:Analytic function throwing error in Oracle SQL Developer 【发布时间】:2017-04-17 20:30:05 【问题描述】:

我正在编写一个非常简单的排名函数,通过在某些特定列上进行分区来计算每个组的排名。 sql 对我来说看起来很简单,但我真的不明白为什么我会收到 ORA 错误。请找到我的sql和错误如下。任何输入将不胜感激。谢谢。

SQL :-

 SELECT *,
        RANK() OVER( PARTITION BY STUDENTID,BOOKISBN ORDER BY ISSUEDATE )  "RN"
   FROM BORROWED_BY;

Error:-

ORA-00923: FROM keyword not found where expected
00923. 00000 -  "FROM keyword not found where expected"
*Cause:    
*Action:
Error at Line: 10 Column: 9

【问题讨论】:

How to SELECT Column, * FROM TABLE in Oracle?的可能重复 【参考方案1】:

当您将SELECT * 与其他列一起使用时,您需要对其进行限定:

SELECT bb.*,
       RANK() OVER (PARTITION BY STUDENTID, BOOKISBN ORDER BY ISSUEDATE ) as RN
FROM BORROWED_BY bb;

【讨论】:

非常感谢!!

以上是关于Oracle SQL Developer 中的分析函数抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

oracle sql developer中的IIF语句

如何避免 Oracle SQL Developer 中的变量替换

为啥 SQL Developer 与 SQL Plus 中的 Oracle PL/SQL 响应时间存在差异?

Oracle SQL Developer 中的 Varchar2 变量

[Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决

为啥 APEX 和 Oracle SQL Developer 中的日期格式不同?