चूंकि वे अलग-अलग कॉलम हैं, इसलिए आपको चयन सूची में उनका अलग से स्पष्ट रूप से उल्लेख करना चाहिए। आप इसे शुद्ध SQL . में गतिशील रूप से नहीं कर सकते ।
मेरा सुझाव है कि एक अच्छे पाठ संपादक का उपयोग करें , पूरी SQL लिखने में मुश्किल से एक या दो मिनट लगेंगे।
आप DECODE . का उपयोग कर सकते हैं जिसमें CASE . के बजाय कुछ कम सिंटैक्स होगा अभिव्यक्ति जो वर्बोज़ है।
उदाहरण के लिए,
DECODE(ONE, 1, 1, 0) AS col1,
DECODE(JUST_ONE, 1, 1, 0) AS col2,
DECODE(ANOTHER_ONE, 1, 1, 0) AS col3,
DECODE(TWO, 1, 1, 0) AS col4,
DECODE(JUST_TWO, 1, 1, 0) AS col5,
DECODE(ANOTHER_TWO, 1, 1, 0) as col6
मैं एसक्यूएल से चिपके रहने का सुझाव दूंगा , और PL/SQL का उपयोग न करें . वे समान नहीं हैं, वे अलग-अलग इंजन हैं। PL --> Procedural Language
.
लेकिन अगर आप जोर देते हैं, तो आप लूप के लिए कर्सर . का उपयोग कर सकते हैं [DBA|ALL|USER]_TAB_COLS के सभी स्तंभों को लूप करने के लिए . आप एक SYS_REFCURSOR . का उपयोग कर सकते हैं डेटा देखने के लिए। सबसे पहले आपको डायनामिक SQL का निर्माण करना होगा ।