क्या आप उप-चयन का उपयोग कर सकते हैं?
postgres=# select ar[1], ar[2] from (select string_to_array('a b c', ' ') ar) as sq;
ar | ar
----+----
a | b
(1 row)
इसके लिए आपको अभी भी प्रत्येक कॉलम को स्पष्ट रूप से निकालने की आवश्यकता है (जैसे आप पहले से ही करते हैं)। यदि सरणी में निकाले जाने की तुलना में अधिक तत्व हैं, तो वे खो जाएंगे, और यदि कम हैं, तो अनुपलब्ध स्तंभ केवल NULL
होंगे ।
संपादित करें:मुझे लगता है कि मैं पूरी चीज को उप-चयन में लपेट दूंगा; आंतरिक उप-चयन वांछित पंक्तियों . उत्पन्न करता है , बाहरी चयन के साथ आंतरिक क्वेरी को वांछित स्तंभों . में प्रक्षेपित करते हुए :
SELECT subquery1.a, subquery1.b, subquery1.c,
myfunction_result[1], myfunction_result[2]
FROM ( SELECT table1.a, table1.b, table1.c,
MyFunction(table1.a, table1.b, table1.c) as myfunction_result
FROM table1 INNER JOIN table2 using(b)
WHERE ... GROUP BY table1.a, table1.b, table1.c
) AS subquery1;
आंतरिक और बाहरी चयन table1
. को ठीक से सहसंबद्ध करेंगे संदर्भ।