दिलचस्प पोस्ट
उद्देश्य-सी 2.0 में अंडरस्कोर के साथ इंस्टेंस व्हेरिएबल्स और @ सिंटेटेज़ के साथ नाम बदलने से एक्सकोड 4 के 'एनालिस' टूल द्वारा अनुकूलन चेतावनियों की ओर जाता है क्या Web.Debug.config और Web.Release.Config फाइल हैं? एक सत्र और एक कुकी के बीच अंतर क्या है? उस सामग्री की फिट होने के लिए आइफ्रेम की चौड़ाई ऊँचाई समायोजित करें एंड्रॉइड पर यूआरएल से छवि कैसे प्रदर्शित करें Python int और लंबे समय कैसे प्रबंधित करता है? प्रोग्राम की जांच कैसे करें कि एक कीबोर्ड आईफोन ऐप में मौजूद है या नहीं? आप जावास्क्रिप्ट में एक रेडियो बटन कैसे बना सकते हैं जो सभी ब्राउज़रों में काम करता है? दृश्य स्टूडियो ब्रेकपॉइंट को भूलने से इनकार करते हैं? सी ++ में बाइनरी फ़ाइल को बहुत तेज़ी से लिखना क्या जावास्क्रिप्ट (node.js) में चर आयात करना संभव है? सुरक्षित रूप से सैंडबॉक्स और निष्पादित उपयोगकर्ता जावास्क्रिप्ट सबमिट किया? स्विफ्ट में एक बाइट सरणी में एक डबल कन्वर्ट कैसे करें? क्यों कार्यात्मक छद्म जैसे: नहीं () और: है () उद्धृत तर्कों की अनुमति है? इकाई फ़्रेमवर्क में डेटाबेस से डिफ़ॉल्ट कॉलम मान का उपयोग कैसे करें?

एक पोस्टग्रेज़ सरणी में डेटा का चयन करना

मेरे पास निम्न डेटा है:

name id url John 1 someurl.com Matt 2 cool.com Sam 3 stackoverflow.com 

मैं इस डेटा को बहु-आयामी सरणी में चुनने के लिए पोस्टग्रेज़ में एक SQL कथन कैसे लिख सकता हूँ, यानी:

 {{John, 1, someurl.com}, {Matt, 2, cool.com}, {Sam, 3, stackoverflow.com}} 

मैंने पोस्टग्रेज़ से पहले इस तरह के सरणी का उपयोग देखा है लेकिन यह पता नहीं कैसे तालिका से डेटा को इस सरणी प्रारूप में चुनना है

मान लें कि सभी कॉलम प्रकार text के हैं

Solutions Collecting From Web of "एक पोस्टग्रेज़ सरणी में डेटा का चयन करना"

आप बहु-आयामी arrays का निर्माण करने के लिए array_agg() का उपयोग नहीं कर सकते हैं, कम से कम पोस्टग्रेएसक्यूएल 9.4 तक नहीं।
(लेकिन आगामी Postgres 9.5 array_agg() एक नए संस्करण जहाज कर सकते हैं)!

आप @ मेट बॉल की क्वेरी से क्या बाहर निकलते हैं रिकॉर्ड की एक सरणी ( the_table[] )

एक सरणी केवल एक ही आधार प्रकार के तत्वों को पकड़ सकता है आपके पास स्पष्ट रूप से संख्या और स्ट्रिंग प्रकार हैं इसे काम करने के लिए सभी कॉलमों (जो पहले से नहीं हैं) में कनवर्ट करें

आप इस तरह के लिए एक समग्र फ़ंक्शन बना सकते हैं जैसे मैंने आपको यहां पहले प्रदर्शित किया था।

 CREATE AGGREGATE array_agg_mult (anyarray) ( SFUNC = array_cat ,STYPE = anyarray ,INITCOND = '{}' ); 

कॉल करें:

 SELECT array_agg_mult(ARRAY[ARRAY[name, id::text, url]]) AS tbl_mult_arr FROM tbl; 

अतिरिक्त ARRAY[] परत को नोट करें ताकि इसे बहुआयामी सरणी (2-डिमेंस्टोनियल, सटीक होना) बना सके।

त्वरित डेमो:

 WITH tbl(id, txt) AS ( VALUES (1::int, 'foo'::text) ,(2, 'bar') ,(3, '}b",') -- txt has meta-characters ) , x AS ( SELECT array_agg_mult(ARRAY[ARRAY[id::text,txt]]) AS t FROM tbl ) SELECT *, t[1][3] AS arr_element_1_1, t[3][4] AS arr_element_3_2 FROM x; 

आपको एक समग्र कार्य का उपयोग करने की आवश्यकता है; array_agg को आपको क्या करना चाहिए।

 SELECT array_agg(s) FROM (SELECT name, id, url FROM the_table ORDER BY id) AS s;