यदि आप प्रत्येक कॉल के लिए क्वेरी जेनरेट करना चाहते हैं या हार्डकोडेड अधिकतम-कॉलम-गणना का उपयोग करना चाहते हैं, तो आप ऐसा कुछ कर सकते हैं:
WITH tab AS
(
SELECT table_name, column_name FROM user_tab_cols WHERE column_id <= 4
) -- user_tab_cols used to provide test data, use your table instead
SELECT MAX(c1) c1,
MAX(c2) c2,
MAX(c3) c3,
MAX(c4) c4
FROM (SELECT table_name,
DECODE( column_id, 1, column_name ) c1,
DECODE( column_id, 2, column_name ) c2,
DECODE( column_id, 3, column_name ) c3,
DECODE( column_id, 4, column_name ) c4
FROM ( SELECT table_name,
column_name,
ROW_NUMBER() OVER ( PARTITION BY table_name ORDER BY column_name ) column_id
FROM tab
)
)
GROUP BY table_name
ORDER BY table_name
यदि इसे उस रूप में प्राप्त करना पर्याप्त है
TABLENAME1|COL1,COL2
TABLENAME2|COL1,COL2,COL3
टॉम कायटे के स्ट्रैग पर एक नज़र डालें।