web-dev-qa-db-ja.com

OracleのEXCEPTキーワード

Oracle 10.1.0.2.0でEXCEPTキーワードを使用しようとしていますが、「不明なコマンド」エラーが発生し続けます。私はグーグルで試しましたが、誰かがキーワードがマイナスであると言ったので、代わりにマイナスを使用しましたが、それでも同じエラーが発生しました。何か案が?ありがとう。

だからここに私のクエリです。コース番号が500を超えるすべてのコースに登録している学生の名前を探しています

SELECT s.name
FROM Students s
WHERE NOT EXISTS
  (
    SELECT c.id
    FROM Courses c
    WHERE c.number > 500

    MINUS

    SELECT e.course_id
    FROM Enrollment e
    WHERE e.student_id = s.id
  );
12
0x56794E

Oracle MINUSは演算子です。 SQL ServerのEXCEPTに相当します。 これは以前の投稿です 違いを説明しています。これは簡単な例です:

SELECT a, b, c
FROM   table_a
MINUS
SELECT a, b, c
FROM   table_b

それでも問題が解決しない場合は、使用している完全なクエリを質問に追加してください。単純な構文エラーの可能性があります。

19
BellevueBob

Oracle 20cは EXCEPT/EXCEPT ALL キーワード。

SELECT col1, col2
FROM t1
EXCEPT
SELECT col1, col2
FROM t2;

またはEXCEPT ALL重複を処理する場合:

SELECT col1, col2
FROM t1
EXCEPT ALL
SELECT col1, col2
FROM t2;

4.6セット演算子

セット演算子は、2つのコンポーネントクエリの結果を1つの結果に結合します。

[〜#〜] except [〜#〜]最初のクエリでは選択されたが、2番目のクエリでは選択されなかったすべての個別の行

EXCEPT ALL最初のクエリで選択されたすべての行。

0
Lukasz Szozda