現在有這樣一個需求,表內容如:
,根據calss_type分組后,然后將name進行拼接返回,即:
mysql可以很方便的利用group_concat函數來實現,但是postgres9.0版本之前沒有這樣的函數,需要進行自定義函數,(參考博客)。
9.0版本后的postgres數據庫,新增了許多函數:
我們可以用array_agg(),string_agg()等函數來實現。注意string_agg()方法參數都必須為字符串。
select class_type,
string_agg(name,'-') as names
from user_account
group by class_type
或者
select class_type,
array_to_string(array_agg(name),'-') as names
from user_account
group by class_type