ANSIジョインサブクエリ内の条件をWHEREを使用しながら、
質問
それが動作しないのはなぜ?
SELECT a.*
FROM dual a
JOIN (SELECT * FROM dual WHERE 1=1) b
ON (1=1);
私は ":無効なSQL文ORA-00900" を取得します。 サブクエリ内のWHERE句を使用する方法はありますか?
編集:バージョン9.2
SELECT *
FROM v$version
Oracle9iのEnterprise Editionのリリース9.2.0.8.0 - 64ビットの製造
以下の実行だけで結構ます:
SELECT a.*
FROM dual a
JOIN (SELECT * FROM dual /*WHERE 1=1*/) b
ON (1=1)
解決
9.2(32ビット版が唯一の違いはある)の
それは私のために動作します:
SQL> SELECT a.*
2 FROM dual a
3 JOIN (SELECT * FROM dual WHERE 1=1) b
4 ON (1=1);
D
-
X
SQL> quit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
他のヒント
あなたはどのバージョンを使用していますか?
まったく同じSQLが私のために罰金を動作します(Oracle Databaseの10グラムExpress Editionのリリース10.2.0.1.0)。
9i
以下Oracleが結合構文をANSI
をサポートしていません。
使用このお8i
に上下している場合:
SELECT a.*
FROM dual a,
(
SELECT *
FROM dual
WHERE 1 = 1
) b
WHERE 1 = 1
それは私には正しく見えると私は10グラムで、それを実行することができていますが、それは8iのは、Oracleのバージョンを使用していますか?
で失敗します所属していません StackOverflow