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

PostgreSQL में "त्रुटि:  प्रत्येक EXCEPT क्वेरी में समान संख्या में कॉलम होने चाहिए" को ठीक करें

PostgreSQL के EXCEPT . का उपयोग करते समय ऑपरेटर, यदि आपको कोई त्रुटि मिलती है जिसमें लिखा है "त्रुटि:प्रत्येक EXCEPT क्वेरी में समान संख्या में कॉलम होने चाहिए ", ऐसा इसलिए है क्योंकि EXCEPT के दोनों ओर क्वेरी द्वारा लौटाए गए कॉलम की संख्या में बेमेल है ऑपरेटर।

इसे ठीक करने का तरीका यह सुनिश्चित करना है कि दोनों SELECT कथन समान संख्या में कॉलम लौटाते हैं।

त्रुटि का उदाहरण

यहां कोड का एक उदाहरण दिया गया है जो त्रुटि उत्पन्न करता है:

SELECT TeacherName FROM Teachers
EXCEPT
SELECT StudentId, StudentName FROM Students;

परिणाम:

ERROR:  each EXCEPT query must have the same number of columns
LINE 3: SELECT StudentId, StudentName FROM Students;

यहां, पहला SELECT स्टेटमेंट एक कॉलम लौटाता है (TeacherName ), लेकिन दूसरा SELECT स्टेटमेंट दो कॉलम लौटाता है (StudentId और StudentName )।

समाधान

समाधान यह सुनिश्चित करना है कि SELECT . दोनों को सुनिश्चित किया जाए कथन समान संख्या में कॉलम लौटाते हैं

उपरोक्त उदाहरण का उपयोग करके, हम या तो अपने दूसरे SELECT . से अतिरिक्त कॉलम को हटा सकते हैं कथन:

SELECT TeacherName FROM Teachers
EXCEPT
SELECT StudentName FROM Students;

परिणाम:

 teachername 
-------------
 Cathy
 Ben

एक अन्य विकल्प प्रासंगिक कॉलम को पहले SELECT . में जोड़ना है कथन:

SELECT TeacherId, TeacherName FROM Teachers
EXCEPT
SELECT StudentId, StudentName FROM Students;

परिणाम:

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

जैसा कि यह उदाहरण दर्शाता है, आपके द्वारा चुने गए विकल्प के आधार पर विभिन्न पंक्तियों को वापस किया जा सकता है।

हम EXCEPT ALL . का भी उपयोग कर सकते हैं , जो डुप्लीकेट मान लौटाता है:

SELECT TeacherId, TeacherName FROM Teachers
EXCEPT ALL
SELECT StudentId, StudentName FROM Students;

परिणाम:

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

यह डेटा के आधार पर समान या भिन्न परिणाम भी लौटा सकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रूबी में डेटटाइम का मिलीसेकंड रिज़ॉल्यूशन

  2. Many2many फ़ील्ड भरना (odoo 8)

  3. लूप के लिए पोस्टग्रेज

  4. पोस्टग्रेएसक्यूएल आईएफ स्टेटमेंट

  5. PostgreSQL में दो टाइमस्टैम्प के बीच अंतर की गणना कैसे करें