首页 > 解决方案 > 在 MySQL 中工作,在 Oracle 中缺少右括号

问题描述

对于一个类项目,我们使用 MySQL 和 Oracle 创建数据库并编写查询来选择数据。

这个查询:

 SELECT     E1.EmployeeID, E1.FirstName, E1.LastName 
 FROM   EMPLOYEE AS E1 
 WHERE  EXISTS         
 (SELECT E2.LastName         
 FROM EMPLOYEE AS E2         
 WHERE E1.LastName = E2.LastName 
 AND E1.EmployeeID <> E2.EmployeeID); 

在 MySQL 上工作正常并返回两个结果,但在 Oracle 上,我在 E1 后收到一条错误消息,说我缺少右括号。实际上我需要在某个地方添加括号还是有其他问题?

标签: mysqlsqloracle

解决方案


您需要删除AS以使其在 Oracle 上运行:

SELECT     E1.EmployeeID, E1.FirstName, E1.LastName 
FROM   EMPLOYEE E1 -- here
WHERE  EXISTS         
     (SELECT E2.LastName         
      FROM EMPLOYEE E2  -- here   
      WHERE E1.LastName = E2.LastName 
        AND E1.EmployeeID <> E2.EmployeeID); 

db<>小提琴演示


推荐阅读