PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में UNION कैसे काम करता है

PostgreSQL में, UNION ऑपरेटर एकाधिक प्रश्नों के परिणामों को एक परिणाम सेट में जोड़ता है।

सिंटैक्स

आधिकारिक वाक्य रचना इस प्रकार है:

query1 UNION [ALL] query2

UNION ऑपरेटर query2 . का परिणाम जोड़ता है query1 . के परिणाम के लिए (हालांकि इस बात की कोई गारंटी नहीं है कि यह वह क्रम है जिसमें पंक्तियों को वास्तव में वापस किया जाता है)।

जब तक UNION ALL . न हो, डुप्लीकेट पंक्तियां हटा दी जाती हैं उपयोग किया जाता है।

उदाहरण

मान लीजिए कि हमारे पास निम्नलिखित टेबल हैं:

SELECT * FROM Teachers;
SELECT * FROM Students;

परिणाम:

 teacherid | teachername 
-----------+-------------
         1 | Warren
         2 | Ben
         3 | Cathy
         4 | Cathy
         5 | Bill
         6 | Bill

 studentid | studentname 
-----------+-------------
         1 | Faye
         2 | Jet
         3 | Spike
         4 | Ein
         5 | Warren
         6 | Bill

हम UNION . का उपयोग कर सकते हैं सभी शिक्षकों और छात्रों को वापस करने के लिए ऑपरेटर:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

परिणाम:

 teachername 
-------------
 Spike
 Ben
 Ein
 Cathy
 Jet
 Faye
 Bill
 Warren
(8 rows)

डिफ़ॉल्ट रूप से, UNION ऑपरेटर परोक्ष रूप से एक DISTINCT लागू करता है कार्यवाही। दूसरे शब्दों में, यह डिफ़ॉल्ट रूप से केवल विशिष्ट मान देता है। तो उपरोक्त परिणामों में वॉरेन, कैथी और बिल में से केवल एक-एक है। यह इस तथ्य के बावजूद है कि संयुक्त तालिकाओं में वास्तव में दो वॉरेन, दो कैथिस और तीन बिल होते हैं (कैथी नामक दो शिक्षक हैं, एक शिक्षक और वॉरेन नामक एक ग्राहक, और दो को बिल कहा जाता है, साथ ही एक छात्र जिसे बिल कहा जाता है)।

यहां एक उदाहरण दिया गया है जो स्पष्ट रूप से DISTINCT . का उपयोग करता है ऑपरेटर:

SELECT TeacherName FROM Teachers
UNION DISTINCT
SELECT StudentName FROM Students;

परिणाम:

 teachername 
-------------
 Spike
 Ben
 Ein
 Cathy
 Jet
 Faye
 Bill
 Warren
(8 rows)

वही परिणाम।

डुप्लिकेट शामिल करें

हम ALL का उपयोग कर सकते हैं परिणामों में डुप्लीकेट मान शामिल करने के लिए कीवर्ड:

SELECT TeacherName FROM Teachers
UNION ALL
SELECT StudentName FROM Students;

परिणाम:

 teachername 
-------------
 Warren
 Ben
 Cathy
 Cathy
 Bill
 Bill
 Faye
 Jet
 Spike
 Ein
 Warren
 Bill
(12 rows)

इस बार हमें आठ के बजाय बारह पंक्तियाँ मिलीं जो हमें अपने पहले उदाहरण में मिली थीं।

हम देख सकते हैं कि दोनों कैथी वापस आ गए और तीनों बिल वापस कर दिए गए।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GroupingError:ERROR:कॉलम ग्रुप बाय क्लॉज में दिखाई देना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए

  2. PostgreSQL में कल की तारीख कैसे प्राप्त करें

  3. मैं क्वेरी निष्पादन समय के psycopg2 लॉगिंग कैसे प्राप्त करूं?

  4. स्प्रिंगबूट+कोटलिन+पोस्टग्रेज और JSONB:org.hibernate.MappingException:JDBC प्रकार के लिए कोई बोली मैपिंग नहीं

  5. PostgreSQL में समय मान से मिनट घटाएं