PostgreSQL के INTERSECT
. का उपयोग करते समय ऑपरेटर, यदि आपको कोई त्रुटि मिलती है जिसमें लिखा है "ERROR:प्रत्येक INTERSECT क्वेरी में समान संख्या में कॉलम होने चाहिए ", ऐसा इसलिए है क्योंकि INTERSECT
के दोनों ओर क्वेरी द्वारा लौटाए गए कॉलम की संख्या में बेमेल है ऑपरेटर।
इसे ठीक करने का तरीका यह सुनिश्चित करना है कि दोनों SELECT
कथन समान संख्या में कॉलम लौटाते हैं।
त्रुटि का उदाहरण
यहां कोड का एक उदाहरण दिया गया है जो त्रुटि उत्पन्न करता है:
SELECT TeacherName FROM Teachers
INTERSECT
SELECT StudentId, StudentName FROM Students;
परिणाम:
ERROR: each INTERSECT 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
INTERSECT
SELECT StudentName FROM Students;
परिणाम:
teachername ------------- Bill Warren
एक अन्य विकल्प प्रासंगिक कॉलम को पहले SELECT
. में जोड़ना है कथन:
SELECT TeacherId, TeacherName FROM Teachers
INTERSECT
SELECT StudentId, StudentName FROM Students;
परिणाम:
teacherid | teachername -----------+------------- 6 | Bill
जैसा कि यह उदाहरण दर्शाता है, आपके द्वारा चुने गए विकल्प के आधार पर विभिन्न पंक्तियों को वापस किया जा सकता है।
हम INTERSECT ALL
. का भी उपयोग कर सकते हैं , जिसमें डुप्लीकेट मान शामिल हैं:
SELECT TeacherId, TeacherName FROM Teachers
INTERSECT ALL
SELECT StudentId, StudentName FROM Students;
परिणाम:
teacherid | teachername -----------+------------- 6 | Bill
यह डेटा के आधार पर समान या भिन्न परिणाम भी लौटा सकता है।