我有一个 SQL 查询,其中包含
REGEXP_REPLACE(LISTAGG(foo.name, ',') WITHIN GROUP (ORDER BY foo.name), '([^,]+)(,\1)+', '\1') AS bar
在其SELECT
. LISTAGG
将 foo.name 列的值与 ',' 作为分隔符连接,同时REGEXP_REPLACE
替换重复项。
当我更改LISTAGG
“,”(逗号后跟空格字符)用作分隔符时,我必须如何调整REGEXP_REPLACE
?
编辑:
当改变REGEXP_REPLACE
它'([^,]+)(, \1)+'
似乎工作,我得到
CITRONENSÄURE、KALIUMSORBAT、PEKTIN
但是当更改为时REGEXP_REPLACE
,'^([^,]+)(, \1)+$'
我仍然有重复项:
CITRONENSÄURE、CITRONENSÄURE、CITRONENSÄURE、CITRONENSÄURE、CITRONENSÄURE、KALIUMSORBAT、KALIUMSORBAT、KALIUMSORBAT、KALIUMSORBAT、KALIUMSORBAT、PEKTIN、PEKTIN、PEKTIN、PEKTIN、PEKTIN
那么,'([^,]+)(, \1)+'
不管有没有^
和,是正确的$
吗?