たとえば、SELECT id from table
というクエリ(実際のケースは複雑なクエリです)では、いくつかの結果が返されます。結果をカンマで区切ったリストとして返すPostgreSQLのクエリ
問題はすべてid
をカンマ区切りの単一の行に戻す方法です。
たとえば、SELECT id from table
というクエリ(実際のケースは複雑なクエリです)では、いくつかの結果が返されます。結果をカンマで区切ったリストとして返すPostgreSQLのクエリ
問題はすべてid
をカンマ区切りの単一の行に戻す方法です。
SELECT string_agg(id, ',') FROM table
はPostgreSQL 9.0が必要ですが、それは問題ではありません。
これはちょっと便利です。ありがとう! – gooddadmike
少なくとも私にとっては、string_aggは最初の引数としてintを取るのが好きではなかったので、代わりに 'string_agg(CAST(id as varchar)、 '、')'のようなことをしました。 – JZC
@JZC、さらに簡単に: 'string_agg(id :: text、 '、')' – Alphaaa
query()関数とarray_to_string()関数を組み合わせて使用することができます。 {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の行としてCSVの列ヘッダーとしてSQLの結果セットの列名、およびクエリのタプルを持つことになります。
H/T http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
これはよく問題を解決するかもしれませんが、どうやってどうやって説明すればよいでしょうか?それは働いています:)スタックオーバーフローの初心者のヒープがあり、彼らはあなたの専門知識から何かを学ぶことができました。あなたにとって明らかであることはそうではないかもしれません。 –
完全に@Taryn。 「いくつかのSQL」の代わりに関連する例を表示してください。 –
の可能重複[PostgresqlのGROUP_CONCAT相当?](http://stackoverflow.com/questions/2560946/postgresql-group-concat-equivalent) – podiluska
上記 "デュープ" は妥当であったととりわけ 'array_agg()'関数が便利です。 –