2013-03-16 21 views
9

Sto cercando di utilizzare la parola chiave EXCEPT in Oracle 10.1.0.2.0, ma continuavo a ricevere l'errore "Comando sconosciuto". Ho provato a googling e qualcuno ha detto che la parola chiave è MINUS, quindi ho usato MINUS, invece, ma ho ancora lo stesso errore. Qualche idea? Grazie.EXCEPT parola chiave in Oracle

Quindi, ecco la mia domanda. Sto trovando il nome degli studenti che si iscrive in tutti i corsi con il numero del corso> 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

Puoi fornirci ulteriori informazioni sulla query che stai tentando di scrivere? Forse c'è un altro modo per costruirlo? – Aiias

+0

@Aiias ci sono altri modi per scriverlo, ma sto cercando di usare EXCEPT/MINUS. – 0x56794E

risposta

16

Oracle MINUS è un operatore; è equivalente a EXCEPT in SQL Server. Here is a previous post spiegando la differenza. Ecco un esempio banale:

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

Se i problemi persistono, aggiungi la domanda completa che stai utilizzando alla domanda; è probabile un semplice errore di sintassi.

+0

OOh! Ho capito cosa c'era di sbagliato nella mia domanda. C'era effettivamente "NOTHING" sbagliato, tranne per il fatto che sqlplus non sembra gradire le righe vuote che ho inserito prima e dopo la parola chiave MINUS. – 0x56794E

+0

Troppo divertente! Non uso più sqlplus da solo, quindi anche questo mi avrebbe messo in difficoltà. – BellevueBob

+0

Ragazzi, che dire dei duplicati? ad esempio: 'a', 'b', 'b' MINUS 'a', 'b' Avrò 'b' come risultato? –