Oracle डाटाबेस में, MINUS
ऑपरेटर का उपयोग केवल पहली क्वेरी द्वारा लौटाई गई अद्वितीय पंक्तियों को वापस करने के लिए किया जाता है, लेकिन दूसरे द्वारा नहीं।
उदाहरण
मान लीजिए कि हमारे पास निम्नलिखित टेबल हैं:
SELECT * FROM Teachers;
SELECT * FROM Students;
परिणाम:
TEACHERID | TEACHERNAME |
---|---|
1 | वॉरेन |
2 | बेन |
3 | कैथी |
4 | कैथी |
5 | बिल |
6 | बिल |
विद्यार्थी | <थ>स्टूडेंटनाम|
---|---|
1 | फेय |
2 | जेट |
3 | स्पाइक |
4 | ऐन |
5 | वॉरेन |
6 | बिल |
हम MINUS
. का उपयोग कर सकते हैं जो शिक्षक भी छात्र नहीं हैं, उन्हें लौटाने के लिए ऑपरेटर:
SELECT TeacherName FROM Teachers
MINUS
SELECT StudentName FROM Students;
परिणाम:
TEACHERNAME |
---|
बेन |
कैथी |
इसलिए हमें केवल वही मान मिलते हैं जो Teachers
. में दिखाई देते हैं तालिका जो Students
. में भी दिखाई नहीं देती है टेबल।
बाईं ओर कौन सी तालिका है और कौन सी दाईं ओर है, इसके आधार पर हम अलग-अलग परिणाम प्राप्त कर सकते हैं। यहां एक उदाहरण दिया गया है जो Students
को रखता है बाईं ओर तालिका और Teachers
दाईं ओर:
SELECT StudentName FROM Students
MINUS
SELECT TeacherName FROM Teachers;
परिणाम:
विद्यार्थी नाम |
---|
ऐन |
फेय |
जेट |
स्पाइक |
इस बार हमें ऐसे छात्र मिले जो शिक्षक भी नहीं हैं।
MINUS
ऑपरेटर केवल अलग पंक्तियाँ देता है। तो हमारे उदाहरण में, Cathy
. के लिए केवल एक पंक्ति लौटाई जाती है , भले ही उस नाम के दो शिक्षक हों।
एक वैकल्पिक
MINUS
. का उपयोग किए बिना समान परिणाम प्राप्त करना संभव है ऑपरेटर। उदाहरण के लिए, हम इसके लिए अपना पहला उदाहरण फिर से लिख सकते हैं:
SELECT
DISTINCT TeacherName
FROM Teachers t
WHERE NOT EXISTS (SELECT StudentName FROM Students s
WHERE t.TeacherName = s.StudentName);
परिणाम:
TEACHERNAME |
---|
बेन |
कैथी |
MINUS
अन्य RDBMS में समतुल्य
Oracle का MINUS
ऑपरेटर EXCEPT
. के समान है ऑपरेटर जो कई अन्य RDBMS उपयोग करते हैं। MariaDB के पास एक EXCEPT
है ऑपरेटर, लेकिन इसने एक MINUS
. भी पेश किया है एक समानार्थी के रूप में ऑपरेटर जिसका उपयोग Oracle मोड में होने पर किया जा सकता है।