SQL Server मे EXCEPT Clause Oracle मे MINUS Operation के बिल्कुल समान होता है.
EXCEPT Query और MINUS Query दूसरी Query में Returns नहीं आने वाली पहली Query मे सभी Rows को Returns करती है.
EXCEPT Query और MINUS Query के Inside प्रत्येक SQL Statement में समान Data Type के साथ Result Sets मे Fields के समान Number होने चाहिए.
UNION Operator के साथ, EXCEPT Operator का उपयोग करते समय समान Rules लागू होते हैं.
MySQL EXCEPT Operator को Support नहीं करता है.
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
EXCEPT
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
यहां पर हम Two Tables पर विचार करेंगे.
Table 1 Customers Table
Customers ID | Name | Address | Age | Salary |
---|---|---|---|---|
7856 | Anna | Hyderabad | 40 | 10000 |
7126 | Muffy | Hyderabad | 21 | 20000 |
7836 | Bettie | Hyderabad | 35 | 30000 |
7156 | Betty | Hyderabad | 42 | 40000 |
7056 | Emma | Hyderabad | 27 | 50000 |
7446 | Sarah | Hyderabad | 29 | 60000 |
Table 2 Orders Table
Customers ID | Orders ID | Date | Amount |
---|---|---|---|
7856 | 101 | 2017-11-18 | 20000 |
7126 | 102 | 2017-11-19 | 30000 |
7836 | 103 | 2017-11-20 | 40000 |
7156 | 104 | 2017-11-21 | 50000 |
7056 | 105 | 2017-11-22 | 60000 |
7446 | 106 | 2017-11-23 | 70000 |
अब हम इन दोनो Tables में अपने SELECT Statement में शामिल होने देंगे.
SQL> SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
LEFT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
EXCEPT
SELECT ID, NAME, AMOUNT, DATE
FROM CUSTOMERS
RIGHT JOIN ORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
Customers ID | Name | Amount | Date |
---|---|---|---|
7856 | Anna | NULL | NULL |
7126 | Muffy | NULL | NULL |
7836 | Bettie | NULL | NULL |
7156 | Betty | NULL | NULL |
7056 | Emma | NULL | NULL |
7446 | Sarah | NULL | NULL |