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

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

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

यह त्रुटि तब होती है जब प्रत्येक SELECT . द्वारा लौटाए गए स्तंभों की संख्या बयान अलग है।

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

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

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

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

परिणाम:

ERROR:  each UNION 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
UNION
SELECT StudentName FROM Students;

या हम पहले SELECT . में एक और कॉलम जोड़ सकते हैं कथन:

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

यह ध्यान रखना महत्वपूर्ण है कि आप जो विकल्प चुनते हैं उसके आधार पर आप अलग-अलग परिणाम प्राप्त कर सकते हैं। ऐसा इसलिए है क्योंकि UNION डिफ़ॉल्ट रूप से अलग पंक्तियाँ देता है। जब हम एक और कॉलम जोड़ते हैं, तो इस बात की संभावना होती है कि पहले की डुप्लीकेट पंक्ति अब अतिरिक्त कॉलम में मान के आधार पर एक अनूठी पंक्ति बन जाती है।

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

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

यह अन्य उदाहरणों के लिए भिन्न परिणाम भी लौटा सकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विशिष्ट jsonb सरणी मान को अद्यतन करने के लिए jsonb_set() का उपयोग करना

  2. दी गई तालिका के लिए स्तंभों के गतिशील सेट को वापस करने का कार्य

  3. AWS RDS का उपयोग करके PostgreSQL डेटाबेस को ऑन-प्रेम से क्लाउड में माइग्रेट करना

  4. Postgresql में मनमानी लंबाई के तारों को स्टोर करें

  5. Psycopg2 के लिए असफल बिल्डिंग व्हील - Virtualenv और pip . का उपयोग करके MacOSX