【问题标题】:Oracle query getting missing key word exception [duplicate]Oracle查询缺少关键字异常[重复]
【发布时间】:2015-12-03 19:52:47
【问题描述】:
SELECT *
FROM Orders
INNER JOIN (select * from customers) as t
ON Orders.CustomerID=t.CustomerID;

当相同的查询尝试在 mysql 中执行时,它会返回正确的响应。 但在 oracle 的情况下,它返回的缺少关键字异常。

【问题讨论】:

    标签: sql oracle exception keyword


    【解决方案1】:
    1. 删除 AS 关键字。在 Oracle 中,您只需要 列别名 而不是 表别名

    2. 另外,内嵌视图不是必需的,您可以简单地使用 table_name customers

    3. 避免在生产系统中使用*。如果您有类似的列,请在 SELECT 列表中使用具有适当别名的所需列。

    选择o.column_list, t.column_list FROM 订单 o INNER JOIN 客户 ON o.CustomerID = t.CustomerID;

    【讨论】:

      【解决方案2】:

      Oracle SELECT 语法不允许在内联视图别名之前使用 'AS' 关键字,所以

      SELECT * FROM Orders INNER JOIN (select * from customers) t ON Orders.CustomerID=t.CustomerID;
      

      你可以只使用 customers t 而不是 (select * from customers) t。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 2012-09-26
        • 2016-11-09
        相关资源
        最近更新 更多