Katakanlah Anda memiliki SELECT id from table
kueri (kasus sebenarnya adalah kueri kompleks) yang mengembalikan Anda beberapa hasil.
Masalahnya adalah bagaimana cara mendapatkan semua id
pengembalian dalam satu baris, dipisahkan dengan koma?
sql
postgresql
sorin
sumber
sumber
array_agg()
fungsi khususnya.Jawaban:
SELECT string_agg(id::text, ',') FROM table
Membutuhkan PostgreSQL 9.0 tetapi itu tidak menjadi masalah.
sumber
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. Dengan
SELECT 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,6sumber
SELECT array_to_string( id, ',' ) AS id FROM table
Anda dapat membuat CSV dari kueri SQL apa pun menggunakan psql:
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
sumber
gunakan fungsi array_to_string () & array () untuk hal yang sama.
sumber
string_agg()
?Saya menggunakan Postgres 11 dan EntityFramework mengambilnya sebagai array integer.
sumber