2013-03-16 6 views
9

Ich versuche, das EXCEPT-Schlüsselwort in Oracle 10.1.0.2.0 zu verwenden, aber immer Fehler 'Unknown Command' erhalten. Ich habe versucht, herum zu googlen und jemand hat gesagt, das Schlüsselwort ist MINUS, also habe ich stattdessen MINUS benutzt, aber ich habe immer noch den gleichen Fehler. Irgendeine Idee? Danke.EXCEPT Schlüsselwort in Oracle

Also hier ist meine Abfrage. Ich finde den Namen der Schüler, die in allen Kursen mit Kursnummer einschreibt> 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 
); 
+0

Können Sie uns weitere Informationen zu der Abfrage geben, die Sie schreiben möchten? Vielleicht gibt es einen anderen Weg, es zu konstruieren? – Aiias

+0

@Aiias gibt es sicher andere Möglichkeiten, es zu schreiben, aber ich versuche, EXCEPT/MINUS zu verwenden. – 0x56794E

Antwort

16

Oracle MINUS ein Operator ist; Es entspricht EXCEPT in SQL Server. Here is a previous post erklärt den Unterschied. Hier ist ein einfaches Beispiel:

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

Wenn Sie immer noch Probleme haben, fügen Sie die komplette Abfrage, die Sie auf Ihre Frage verwenden; Es ist wahrscheinlich ein einfacher Syntaxfehler.

+0

OOh! Ich habe herausgefunden, was mit meiner Anfrage nicht stimmt. Es war tatsächlich "NICHTS" falsch, abgesehen von der Tatsache, dass sqlplus die leeren Zeilen, die ich vor und nach dem MINUS-Schlüsselwort eingefügt habe, nicht zu mögen scheint. – 0x56794E

+0

Zu lustig! Ich benutze nicht so viel sqlplus selbst, also hätte mich das auch überhäuft. – BellevueBob

+0

Jungs, was ist mit Duplikaten? Beispiel: 'a', 'b', 'b' MINUS 'a', 'b' Wird ich 'b' als Ergebnis haben? –