我有一个 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)+'不管有没有^和,是正确的$吗?