【Oracle】Inner JoinでORA-00905 | 2流システムエンジニア DEEPのぼやき場

2流システムエンジニア DEEPのぼやき場

ブログの説明を入力します。

この前ちょっと久しぶりに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句について、今度調べてみようかな。