ORA-00936缺失表达式错误:ROW_NUMBER()写法问题排查
解决ORA-00936错误:ROW_NUMBER()函数语法问题
嘿,你遇到的这个ORA-00936(缺失表达式)错误,根源其实很明显——你写的ROW NUMBER()中间多了个空格!Oracle里的这个窗口函数是**ROW_NUMBER()**,必须是连在一起的一个整体,中间不能拆分。
原SQL里把函数名拆成了两个词,数据库根本识别不出这是个合法的函数,所以才会在这个位置报错。
给你修正后的完整SQL:
SELECT * FROM ( SELECT contract_number, ROW_NUMBER() OVER (PARTITION BY contract_number ORDER BY ID) RowNumber FROM contracts ) a WHERE a.RowNumber = 1
这个修正后的语句就能正常执行了,它的作用是获取每个contract_number分组下,按ID排序后的第一条记录,完全符合你的需求~
内容的提问来源于stack exchange,提问作者joedoe
相关产品推荐
相关产品推荐

