Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 从colums数据返回一个字符串_Postgresql - Fatal编程技术网

Postgresql 从colums数据返回一个字符串

Postgresql 从colums数据返回一个字符串,postgresql,Postgresql,我已经从personal.phoneNumbers查询select*得到了如下结果集 前缀 但我想返回如下数据 (12) 4589524;(077) 7090701; (050) 2561024 如何使用postgresql实现这一点?您可以使用字符串运算符和函数以所需的格式构造单个电话号码: '(' || btrim(pref) || ') ' || number 显然,这会为您处理的每个记录生成一个字符串。然后,您可以使用聚合函数string_agg将所有记录中的扩展电话号码串成一个字符

我已经从personal.phoneNumbers查询select*得到了如下结果集 前缀

但我想返回如下数据

(12) 4589524;(077) 7090701; (050) 2561024

如何使用postgresql实现这一点?

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

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

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

使用字符串连接| |和字符串_agg。请参阅链接问题。@CraigRinger有点怀疑是否将此标记为重复,至少是所示问题的重复。上面的问题需要在字符串| agg之前进行修剪和连接,这使得它远没有提供的答案那么简单作为来自个人的首选号码。phoneNumbers@Patrick我也没注意到修剪的必要性,说句公道话
SELECT string_agg('(' || btrim(pref) || ') ' || number, '; ') AS pref_number
FROM personal."phoneNumbers"