将regexp_matches的结果检索为一行

OTA*_*TAR 18 regex postgresql

所以,如果有这个字符串 aassdd

这段代码:

regexp_matches('aassdd', 'a', 'g')

返回2个不同的行.

可以将所有匹配检索为一行吗?例如,array作为一行的类型,即来自上面的代码,需要的结果是:{a,a}

a_h*_*ame 17

regexp_matches()返回一个集而不是一个标量的事实是可以理解的,但仍然有点烦人.

我找到的唯一解决方法是这个有点难看的查询:

select array_agg(i)
from (
   select (regexp_matches('aassdd', 'a', 'g'))[1] i 
)  t
Run Code Online (Sandbox Code Playgroud)


Muh*_*ama 6

SELECT ARRAY(select array_to_string(regexp_matches('aassdd', 'a', 'g'),''));
Run Code Online (Sandbox Code Playgroud)