टेराडाटा - सेट ऑपरेटर्स
SET ऑपरेटर्स कई सेलेक्ट स्टेटमेंट के परिणाम जोड़ते हैं। यह जॉइंट्स के समान दिख सकता है, लेकिन जॉइन्ट्स कई टेबलों से कॉम्बिनेशन को जोड़ती है जबकि SET ऑपरेटर्स कई रो से रो को जोड़ती है।
नियमों
प्रत्येक SELECT स्टेटमेंट से कॉलम की संख्या समान होनी चाहिए।
प्रत्येक SELECT से डेटा प्रकार संगत होना चाहिए।
ORDER BY को केवल अंतिम चयन विवरण में शामिल किया जाना चाहिए।
संघ
UNION स्टेटमेंट का उपयोग कई सेलेक्ट स्टेटमेंट्स के परिणामों को संयोजित करने के लिए किया जाता है। यह डुप्लिकेट को अनदेखा करता है।
वाक्य - विन्यास
निम्नलिखित UNION स्टेटमेंट का मूल सिंटैक्स है।
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
उदाहरण
निम्नलिखित कर्मचारी तालिका और वेतन तालिका पर विचार करें।
कर्मचारी संख्या | पहला नाम | उपनाम | JoinedDate | DepartmentNo | जन्म दिन |
---|---|---|---|---|---|
101 | माइक | जेम्स | 2005/03/27 | 1 | 1980/01/05 |
102 | रॉबर्ट | विलियम्स | 2007/04/25 | 2 | 1983/03/05 |
103 | पीटर | पॉल | 2007/03/21 | 2 | 1983/04/01 |
104 | एलेक्स | स्टुअर्ट | 2008/02/01 | 2 | 1984/11/06 |
105 | रॉबर्ट | जेम्स | 2008/01/04 | 3 | 1984/12/01 |
कर्मचारी संख्या | कुल | कटौती | कुल भुगतान |
---|---|---|---|
101 | 40,000 | 4000 | 36,000 |
102 | 80,000 | 6000 | 74,000 |
103 | 90,000 | 7000 | 83,000 |
104 | 75,000 | 5000 | 70,000 |
निम्न UNION क्वेरी कर्मचारी और वेतन तालिका दोनों से EmployeeNo मान को जोड़ती है।
SELECT EmployeeNo
FROM
Employee
UNION
SELECT EmployeeNo
FROM
Salary;
जब क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है।
EmployeeNo
-----------
101
102
103
104
105
यूनिअन ऑल
UNION सभी कथन UNION के समान है, यह डुप्लिकेट पंक्तियों सहित कई तालिकाओं के परिणामों को जोड़ता है।
वाक्य - विन्यास
निम्नलिखित यूनिअन ऑल स्टेटमेंट का मूल सिंटैक्स है।
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
UNION ALL
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
उदाहरण
निम्नलिखित यूनिअन ऑल स्टेटमेंट के लिए एक उदाहरण है।
SELECT EmployeeNo
FROM
Employee
UNION ALL
SELECT EmployeeNo
FROM
Salary;
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्न आउटपुट का उत्पादन करती है। आप देख सकते हैं कि यह डुप्लिकेट भी लौटाता है।
EmployeeNo
-----------
101
104
102
105
103
101
104
102
103
एक दूसरे को काटना
INTERSECT कमांड का उपयोग कई सेलेक्ट स्टेटमेंट के परिणामों को संयोजित करने के लिए भी किया जाता है। यह पहले सेलेक्ट स्टेटमेंट से उन पंक्तियों को लौटाता है, जिनका दूसरे सेलेक्ट स्टेटमेंट में मैच होता है। दूसरे शब्दों में, यह उन पंक्तियों को लौटाता है जो दोनों चयन कथनों में मौजूद हैं।
वाक्य - विन्यास
निम्नलिखित इंटरसेक्ट स्टेटमेंट का मूल सिंटैक्स है।
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
INTERSECT
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
उदाहरण
निम्नलिखित INTERSECT स्टेटमेंट का एक उदाहरण है। यह दोनों तालिकाओं में मौजूद EmployeeNo मान देता है।
SELECT EmployeeNo
FROM
Employee
INTERSECT
SELECT EmployeeNo
FROM
Salary;
जब उपरोक्त क्वेरी निष्पादित होती है, तो यह निम्नलिखित रिकॉर्ड लौटाता है। कर्मचारी 105 को बाहर रखा गया है क्योंकि यह सैलरी टेबल में मौजूद नहीं है।
EmployeeNo
-----------
101
104
102
103
माइनस / छोड़कर
MINUS / EXCEPT कमांड कई तालिकाओं से पंक्तियों को जोड़ते हैं और उन पंक्तियों को वापस करते हैं जो पहले SELECT में हैं लेकिन दूसरे SELECT में नहीं हैं। वे दोनों एक ही परिणाम लौटाते हैं।
वाक्य - विन्यास
निम्नलिखित MINUS कथन का मूल सिंटैक्स है।
SELECT col1, col2, col3…
FROM
<table 1>
[WHERE condition]
MINUS
SELECT col1, col2, col3…
FROM
<table 2>
[WHERE condition];
उदाहरण
निम्नलिखित MINUS स्टेटमेंट का एक उदाहरण है।
SELECT EmployeeNo
FROM
Employee
MINUS
SELECT EmployeeNo
FROM
Salary;
जब इस क्वेरी को निष्पादित किया जाता है, तो यह निम्नलिखित रिकॉर्ड लौटाता है।
EmployeeNo
-----------
105