【发布时间】:2018-11-24 19:45:29
【问题描述】:
我有一个查询,它返回一组包含字母 A、E、I 和 L 的行。该组合是Alterar、Excluir、Incluir 和Listar 的葡萄牙语助记符。列值可以在 A、AE、AEL、AELI...L、LI、LIA、LIAE 之间变化。
在下面的示例中,我希望能够获得一个删除所有重复字母的唯一字符串。所以结果将是AELI,所有行的合并。
我的第一次尝试是结合使用 array_to_string 和 array_agg 函数。
select array_to_string(array_agg(colmn), '') from mytable;
然后我使用regexp_matches函数只匹配同一个字母的一个字符,但没有成功,因为返回了AELA。
select regexp_matches('AELAEILI', '[?AEIL][?AEIL][?AEIL][?AEIL]');
Here上面解释的例子。
注意
这里解释的问题是一条很棒的 sql 指令。这个sqlfiddle 是我模拟我真正的问题的努力。
【问题讨论】: