SELECT sid, 'Math' as subject, math as mark
FROM your_table
UNION ALL
SELECT sid, 'English' as subject, english as mark
FROM your_table
UNION ALL
SELECT sid, 'French' as subject, french as mark
FROM your_table
लेकिन आपकी समस्या का मूल कारण गलत डेटाबेस डिज़ाइन है। उन विषयों को पहले स्थान पर कॉलम नहीं होना चाहिए और आपके वांछित आउटपुट की तरह एक तालिका में संग्रहीत किया जाना चाहिए।
संपादित करें
तो यह क्या करता है?
SELECT sid, 'Math' as subject, math as mark
FROM your_table
sid
लौटाता है कॉलम, एक "वर्चुअल" कॉलम हार्डकोडेड मान के साथ 'Math'
जिसे subject
. नाम दिया गया है . चूंकि आपने 'Math'
. मान को स्टोर नहीं किया है कहीं न कहीं, इसे हार्डकोड किया जाना था। फिर अंत में यह कॉलम math
. का भी चयन करता है mark
. नाम का प्रयोग करते हुए बजाय। math
के बीच अंतर नोट करें और 'Math'
- एक कॉलम है और दूसरा सिंगल कोट्स के कारण स्ट्रिंग अक्षर है।
यह तीनों विषयों के लिए किया जाता है (यदि आपके पास चार विषय थे, तो आपको UNION में चार भागों की आवश्यकता होगी)
यूनियन सभी तीनों चयनों को एक ही क्वेरी में जोड़ती है। andr समाधान (जिसे किसी ऐसे व्यक्ति द्वारा अस्वीकार कर दिया गया है जो इसे नहीं समझता है) इसे स्पष्ट रूप से व्युत्पन्न तालिका (या इनलाइन दृश्य) में डालकर इसे और भी स्पष्ट करता है।
अलग-अलग हिस्से क्या कर रहे हैं यह देखने के लिए प्रत्येक चयन को अपने आप चलाएं।
भाग as mark
एक "कॉलम उपनाम" कहा जाता है और एक ही नाम के कॉलम को एक जॉइन में अलग-अलग तालिकाओं से पुनर्प्राप्त करने के लिए भी इस्तेमाल किया जा सकता है और परिणाम सेट में अभी भी अद्वितीय नाम हैं।