कई तरीके हैं। एक तरीका यह है कि सरणी को टेक्स्ट में डाला जाए और इसे regexp_split_to_table से विभाजित किया जाए। ()
.
यह फ़ंक्शन PostgreSQL 8.3 या बाद के संस्करण . में मौजूद है .
SELECT regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{');
आउटपुट:
0,0,0
1,1,1
2,2,2
यदि आप संलग्न कोष्ठक चाहते हैं (शायद आप नहीं?), तो उन्हें इस तरह वापस जोड़ें:
SELECT '{' || regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{') || '}';
हमारा आउटपुट:
{0,0,0}
{1,1,1}
{2,2,2}
वैकल्पिक:
यह PostgreSQL 8.2 के साथ भी काम करना चाहिए या शायद पहले भी, लेकिन मैंने उसका परीक्षण नहीं किया।
SELECT my_2d_int_arr_var[x:x][1:3]
FROM (SELECT generate_series(1, array_upper(my_2d_intarr, 1), 1)::int4 AS x)) x
आउटपुट:
{{0,0,0}}
{{1,1,1}}
{{2,2,2}}
<उप>(आप कुछ घुंघराले कोष्ठकों को हटाना चाह सकते हैं ..)
अन्यथा, मैं एक plpgsql फ़ंक्शन लिखूंगा जो सरणी के माध्यम से लूप करता है। काफी आसान।
संबंधित unnest()
भी है
फ़ंक्शन, लेकिन यह प्रति आधार तत्व (इस मामले में पूर्णांक) की एक पंक्ति देता है, इसलिए इसका यहां कोई उपयोग नहीं है।
परिणाम आउटपुट करने का एक (तेज़!) तरीका:COPY
।