Katakanlah Anda memiliki SELECT id from tablekueri (kasus sebenarnya adalah kueri kompleks) yang mengembalikan Anda beberapa hasil.
Masalahnya adalah bagaimana cara mendapatkan semua idpengembalian dalam satu baris, dipisahkan dengan koma?
Katakanlah Anda memiliki SELECT id from tablekueri (kasus sebenarnya adalah kueri kompleks) yang mengembalikan Anda beberapa hasil.
Masalahnya adalah bagaimana cara mendapatkan semua idpengembalian dalam satu baris, dipisahkan dengan koma?
array_agg()fungsi khususnya.
Jawaban:
SELECT string_agg(id::text, ',') FROM table
Membutuhkan PostgreSQL 9.0 tetapi itu tidak menjadi masalah.
string_agg(CAST(id as varchar), ',')sebagai gantinya.
string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
Anda bisa menggunakan fungsi array () dan array_to_string () bersama dengan kueri Anda. DenganSELECT array( SELECT id FROM table ); Anda akan mendapatkan hasil seperti: {1,2,3,4,5,6}
Kemudian, jika Anda ingin menghapus tanda {}, Anda bisa menggunakan fungsi array_to_string () dan menggunakan koma sebagai pemisah, jadi: SELECT array_to_string( array( SELECT id FROM table ), ',' )akan mendapatkan hasil seperti: 1,2,3,4,5,6
SELECT array_to_string( id, ',' ) AS id FROM table
Anda dapat membuat CSV dari kueri SQL apa pun menggunakan psql:
$ psql
> \o myfile.csv
> \f ','
> \a
> SELECT col1 AS column1, col2 AS column2 ... FROM ...
Hasil myfile.csv akan memiliki nama kolom kumpulan hasil SQL sebagai tajuk kolom CSV, dan tupel kueri sebagai baris CSV.
h / t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
gunakan fungsi array_to_string () & array () untuk hal yang sama.
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}
Saya menggunakan Postgres 11 dan EntityFramework mengambilnya sebagai array integer.