मान लें कि आपके पास एक SELECT id from tableक्वेरी है (वास्तविक मामला एक जटिल क्वेरी है) जो आपको कई परिणाम देता है।
समस्या यह है कि सभी idको एक ही पंक्ति में कैसे लौटाया जाए, अल्पविराम अलग हो गया?
मान लें कि आपके पास एक SELECT id from tableक्वेरी है (वास्तविक मामला एक जटिल क्वेरी है) जो आपको कई परिणाम देता है।
समस्या यह है कि सभी idको एक ही पंक्ति में कैसे लौटाया जाए, अल्पविराम अलग हो गया?
array_agg()फ़ंक्शन।
जवाबों:
SELECT string_agg(id::text, ',') FROM table
PostgreSQL 9.0 की आवश्यकता है लेकिन यह एक समस्या नहीं है।
string_agg(CAST(id as varchar), ',')इसके बजाय।
string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
आप अपनी क्वेरी के साथ सरणी () और array_to_string () फ़ंक्शन एक साथ उपयोग कर सकते हैं। इसके साथ SELECT array( SELECT id FROM table );आपको एक परिणाम मिलेगा: {1,2,3,4,5,6}
फिर, यदि आप {} संकेतों को हटाना चाहते हैं, तो आप array_to_string () फ़ंक्शन का उपयोग कर सकते हैं और अल्पविराम को विभाजक के रूप में उपयोग कर सकते हैं, इसलिए: SELECT array_to_string( array( SELECT id FROM table ), ',' )एक परिणाम मिलेगा: 1,2,3,4,5,6
SELECT array_to_string( id, ',' ) AS id FROM table
आप psql का उपयोग करके किसी भी SQL क्वेरी से एक CSV उत्पन्न कर सकते हैं:
$ psql
> \o myfile.csv
> \f ','
> \a
> SELECT col1 AS column1, col2 AS column2 ... FROM ...
परिणामी myfile.csv में CSV कॉलम हेडर के रूप में SQL परिणामसेट कॉलम नाम होगा, और CSV पंक्तियों के रूप में क्वेरी ट्यूपल्स।
h / t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
उसी के लिए array_to_string () और array () फ़ंक्शन का उपयोग करें।
select array_to_string(array(select column_name from table_name where id=5), ', ');
string_agg()?
SELECT array_agg(id, ',') FROM table
{1,2,3,4}
मैं Postgres 11 का उपयोग कर रहा हूं और EntityFramework इसे पूर्णांक के सरणी के रूप में ला रहा है।