为什么“错过右括号”错误?

时间:2012-05-30 21:34:01

标签: oracle oracle10g oracle11g

为什么查询会产生此错误?

  

ORA-00907:缺少右括号
  00907. 00000 - “缺少右括号”

select * from
(
  (select * from dual) alias1,

  (select * from dual) alias2
)

我在10g和11g上出现错误

2 个答案:

答案 0 :(得分:3)

SQL语法不正确。删除外部括号,如下所示:

select * from 
(select * from dual) alias1, 
(select * from dual) alias2;

答案 1 :(得分:1)

你的括号是平衡的,但是解析器很混乱,并且在它的混乱中,它产生了一个次优的错误信息。

你可以这样写:

SELECT *
  FROM (SELECT * FROM Dual) Alias1
  JOIN (SELECT * FROM Dual) Alias2 ON 1 = 1;