为什么不管用?
SELECT a.*
FROM dual a
JOIN (SELECT * FROM dual WHERE 1=1) b
ON (1=1);
我得到“ORA-00900:无效的SQL语句”。是否有方法在子查询中使用WHERE子句?
编辑:版本9.2
SELECT *
FROM v$version
Oracle 9 i Enterprise Edition 9.2.0.8.0 - 64位产品
下面的代码执行得很好:
SELECT a.*
FROM dual a
JOIN (SELECT * FROM dual /*WHERE 1=1*/) b
ON (1=1)
4条答案
按热度按时间ego6inou1#
它适用于我的9.2(32位版本是唯一的区别):
cuxqih212#
您使用的是什么版本?
完全相同的SQL对我来说工作得很好(Oracle数据库10g Express Edition 10.2.0.1.0版)。
x6h2sr283#
9i
以下版本的Oracle不支持ANSI
联接语法。如果您使用
8i
及以下版本,请使用此选项:zwghvu4y4#
在我看来,它看起来是正确的,我可以在10g中执行它,但在8i中失败,您使用的是哪个版本的Oracle?