我尝试在DBeaver中运行下面的SQL查询,但出现错误:
SQL错误[907] [42000]:ORA-00907:缺少右括号
错误位置行:24位:909
这个错误是在-
(EXTRACT (SECOND FROM a.service_date) AS servicedate_secs + a.eta) AS enterTS_eta, a.schdev,
字符串
查询的一部分:
SELECT
(EXTRACT (SECOND FROM a.service_date) + a.eta) AS enterTS_eta,
a.schdev, -- ADD - enter timestamp AND ETA
(CASE
WHEN enterTS_eta < a.schdev
THEN 'Schedule Deviation is more!' -- Cases TO compare it WITH SchDev
WHEN enterTS_eta > a.schdev
THEN 'Schedule Deviation is less!'
ELSE 'Equal!'
END) AS bus_log_info
型
我尝试了不同的解决方案
- 删除括号
- 删除AS子句
到目前为止没有任何工作。我不知道这部分有什么问题。在尝试了一些修复后,现在错误是-
SQL Error [904] [42000]: ORA-00904: "ENTERS_ETA": invalid identifier.
型
1条答案
按热度按时间y1aodyip1#
列表达式内部还有一个AS别名:
字符串
删除它:
型
别名仅在列表达式的最后使用。
此外,您不需要在这个表达式周围使用外括号,也不需要在
CASE
表达式周围使用外括号,尽管它们不会造成任何损害。括号最好只在需要时使用。下一个问题是您试图在同一查询块中使用派生列。你不能这么做该别名将仅在父查询块中可用。因此,使用两个查询块嵌套查询:
型