如何转换此查询的结果:
select regexp_matches('number: 772392 number: 911604 number:123456', '[0-9]{6}', 'g');
由此:
{772392}
{911604}
{123456}
对此?:
{772392,911604,123456}
我尝试通过 array_to_string 和 array_agg 进行转换,但我没有成功。
select array_to_string
(array_agg(regexp_matches
('number: 772392 number: 911604 number:123456', '[0-9]{6}', 'g')), ', ');
答案 0 :(得分:2)
regexp_matches
会返回文本数组
如果模式不包含带括号的子表达式,则返回的每一行都是一个单元素文本数组,其中包含与整个模式匹配的子字符串。
所以你应该
select string_agg(numb[1], ', ')
from regexp_matches('number: 772392 number: 911604 number:123456', '[0-9]{6}', 'g')
as numb;
实现目标