この前ちょっと久しぶりにOracle使ったら、ちょっとひっかかったのでメモ書き。
Oracle 12CでSQL Developerでクエリを実行したときに、Inner Joinが何故か上手くいかない。。。
ちなみに、下記のようなクエリ。
SELECT A_TABLE.*, B_DATA.*
FROM A_TABLE
INNER JOIN (
SELECT
B_KEY
, B_COLUMN
FROM B_TABLE
WHERE DEL_FLAG = 0
) AS B_DATA
ON A_TABLE.A_KEY = B_DATA.B_KEY
何度やってもORA-00905で失敗する、何故だ???
と思って色々ためしてたら「AS B_DATA」を「B_DATA」に変えたら成功しました。
つまりは下記。
SELECT A_TABLE.*, B_DATA.*
FROM A_TABLE
INNER JOIN (
SELECT
B_KEY
, B_COLUMN
FROM B_TABLE
WHERE DEL_FLAG = 0
) B_DATA
ON A_TABLE.A_KEY = B_DATA.B_KEY
うーん、SQL Server 2014だか、SQL Server 2014 + VB6のADOだかだと最初の方のクエリの方がむしろ推奨だった気がしたのですが、Oracleだとダメみたいですね。
OracleのAS句について、今度調べてみようかな。