टेराडाटा - सेट ऑपरेटर्स

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