sql - ORA-00907: 缺少右括号,但我有匹配的对
问题描述
我在此查询中收到缺少右括号的错误。我在这里错过了什么,我看到了 5 个左括号和 5 个右括号。我要做的是只返回具有最新日期的行。
WITH snCTE AS
(
SELECT
T1.column1
,T1.column2
,T2.column3
,T2.column4
,T1.datefield
,ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY datefield DESC) AS RN
FROM dBtable1 T1
LEFT OUTER JOIN dBtable2 T2 ON (T1.columnid=T2.columnid AND T1.otherfield=T2.otherfield)
WHERE EXISTS (SELECT 1 FROM dbtable3 AS T3 WHERE T3.column1 = T1.column1)
)
SELECT column1, column2, column3, column4, datefield
FROM snCTE
WHERE snCTE.RN = 1
解决方案
错误信息具有误导性;真正的问题是Oracle不支持AS
表别名,但只支持列,所以
FROM dbtable3 AS T3
应该编辑成
FROM dbtable3 T3
例如:
SQL> select 1 as ONE from dual;
ONE
----------
1
SQL> select 1 as ONE from dual D;
ONE
----------
1
SQL> select 1 as ONE from dual as D;
select 1 as ONE from dual as D
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
推荐阅读
- sql - Access VBA - If/Else 语句不断给我一个错误,但我不知道为什么
- python - Python:服务器请求/响应生命周期中长时间运行的流式传输任务
- wildfly - JMS 消息的 Wildfly 跨站点复制
- struts2 - Struts2在重定向动作执行方法中的会话映射检查中丢失了属性值
- google-apps-script - 使用 Google-apps-script 从 Google 搜索中抓取错误 429
- php - PHP / Jquery中表单上的序列化撇号问题
- javascript - 如何获取 Form.Control - React Bootstrap Date Picker 的值?
- java - JNI:GetObjectClass 的返回值是否应该针对同一个对象而变化?
- flutter - Flutter:有一种方法可以从 Class 中定义的 const 中选择一个随机 const?
- sql - 查询选择经理和经理下员工的工资总额