从colums数据返回一个字符串

时间:2015-07-13 08:03:38

标签: postgresql

我是这样的查询select * from personal."phoneNumbers"的结果集 前缀

pref |number
-----|--------
"12 "|"4589524"
"077"|"7090701"
"050"|"2561024"

但我想返回像

这样的数据
(12) 4589524;(077) 7090701; (050) 2561024

如何使用postgresql执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用字符串运算符和函数以您希望的格式构建单个电话号码:

'(' || btrim(pref) || ') ' || number

这显然会为您处理的每条记录生成一个字符串。然后,您可以使用聚合函数string_agg()将所有记录中的扩展电话号码串联起来(无双关语),并在电话号码之间使用适当的分隔符:

SELECT string_agg('(' || btrim(pref) || ') ' || number, '; ') AS pref_number
FROM personal."phoneNumbers"