2

次のように、いくつかの列とテーブルを用意します。

: 使用されている要素の名前は、説明のみを目的としています。

SELECT T.col1 
FROM Table1 T 
WHERE NOT EXISTS (
   (SELECT * FROM Table2) 
     EXCEPT (SELECT TT.col1 
             FROM TableTT TT 
             WHERE TT.col2 = T.col2)
     );

エラー:括弧が一致しているように見えますが、右括弧がありません。

しかし、実際には括弧とは何の関係もないことは知っています。そして、エラーはEXCEPT句のどこかにあると思われます。エラーの原因は何ですか?

4

1 に答える 1

7

EXCEPTOracle には演算子はありません。MINUS代わりに使用してください。参考:こちら

あなたのクエリでは、「EXCEPT」という単語はおそらく(SELECT * FROM Table2)サブクエリのテーブル エイリアスとして扱われます。

アップデート:

指定されたデータ構造の完全なクエリは次のようになります。

SELECT T.col1 
FROM Table1 T 
WHERE NOT EXISTS 
((SELECT col1 FROM Table2) 
MINUS 
(SELECT TT.col1 FROM TableTT TT WHERE TT.col2 = T.col2));

forに変更*したことに注意してください。col1Table2TT.col1TTTable2

于 2012-02-19T16:10:49.540 に答える