2013-03-16 44 views
9

Tôi đang cố gắng sử dụng từ khóa EXCEPT trong Oracle 10.1.0.2.0, nhưng vẫn nhận được lỗi 'Unknown Command'. Tôi đã thử googling xung quanh và ai đó nói rằng từ khóa là TRỪ, vì vậy tôi đã sử dụng MINUS, thay vào đó, nhưng tôi vẫn có lỗi tương tự. Bất kỳ ý tưởng nào? Cảm ơn.EXCEPT từ khóa trong Oracle

Vì vậy, đây là truy vấn của tôi. Tôi đang tìm kiếm tên của sinh viên ghi danh trong TẤT CẢ các khóa học với số nhiên> 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

Bạn có thể cung cấp thêm thông tin về truy vấn bạn đang cố gắng viết không? Có lẽ có một cách khác để xây dựng nó? – Aiias

+0

@Aiias có những cách khác để viết, nhưng tôi đang cố gắng sử dụng EXCEPT/MINUS. – 0x56794E

Trả lời

16

Oracle MINUS là một nhà điều hành; nó tương đương với EXCEPT trong SQL Server. Here is a previous post giải thích sự khác biệt. Dưới đây là một ví dụ tầm thường:

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

Nếu bạn vẫn gặp sự cố, hãy thêm truy vấn hoàn chỉnh bạn đang sử dụng cho câu hỏi của mình; nó có thể là một lỗi cú pháp đơn giản.

+0

OOh! Tôi đã tìm ra điều gì sai với truy vấn của mình. Có thực sự "NOTHING" sai, ngoại trừ thực tế là sqlplus dường như không thích những dòng trống tôi đặt trước và sau từ khóa MINUS. – 0x56794E

+0

Quá buồn cười! Tôi không sử dụng sqlplus mà nhiều bản thân mình vì vậy điều này sẽ có stumped tôi là tốt. – BellevueBob

+0

Các bạn, về bản sao thì sao? ví dụ: 'a', 'b', 'b' MINUS 'a', 'b' Tôi có kết quả 'b' không? –