0

私が使用しpostgresql 9.0 ているのは、3 つの属性を連結できるかどうか疑問に思っていることです。

これは、2 つの属性 (本とコンマ) を連結する方法です。

SELECT string_agg(book, ',') FROM authors where id = 1;


| book1,book2,book3|
--------------------

以下のようなことをするにはどうすればよいですか:

SELECT string_agg(name, ':', book, ',') FROM authors where id = 1;

| Ahmad: book1,book2,book3|
  ----------------

誰かが助けることができますか?ありがとう。

4

2 に答える 2

4

次のようにフィールドを連結するだけです。

SELECT name || ':' || string_agg(book, ',') FROM authors where id = 1;

編集:

SQL が複数の名前を返す場合は、名前でグループ化する必要があります (同じ名前の作成者が複数いる場合は、もう少し複雑になります。この回答ではそのケースについては説明しません)。

SELECT name || ':' || string_agg(book, ',') 
  FROM authors where id = 1 
 GROUP BY name;

本をアルファベット順に並べたい場合は、本に を追加できますORDER BY

SELECT name || ':' || string_agg(book, ',') WITHIN GROUP ORDER BY book 
  FROM authors where id = 1 
 GROUP BY name;
于 2014-10-07T10:29:28.593 に答える
1
SELECT name || ': ' || string_agg(book, ',') FROM authors where id = 1 group by name ;
于 2014-10-07T11:57:25.057 に答える