【发布时间】:2016-10-07 04:51:15
【问题描述】:
我正在使用 Amazon Redshift。
我在该字符串中有一个列存储为逗号分隔,如Private, Private, Private, Private, Private, Private, United Healthcare。我想使用query 从中删除重复项,因此结果应该是Private, United Healthcare。我显然从 Stackoverflow 中找到了一些解决方案,并且知道使用正则表达式是可能的。
因此,我尝试使用:
SELECT regexp_replace('Private, Private, Private, Private, Private, Private, United Healthcare', '([^,]+)(,\1)+', '\1') AS insurances;
和
SELECT regexp_replace('Private, Private, Private, Private, Private, Private, United Healthcare', '([^,]+)(,\1)+', '\g') AS insurances;
还有一些其他的正则表达式,但似乎不起作用。有什么解决办法吗?
【问题讨论】:
-
是 Postgres 还是 Redshift? Redshift 所基于的 Postgris 版本太旧了,以至于无法与最新的 Postgres 相比。
-
它是Redshift,但我认为它使用的是postgrey数据库。
-
这是两个不同的东西。 Amazon Redshift 基于非常旧的 Postgres 版本。它是 Redshift 或 Postgres - 但不是两者兼而有之,建议的解决方案
regexp_split_to_table对您不起作用这一事实就是一个迹象。 -
嗯..好的。在这种情况下我现在该怎么办?顺便感谢您的回复。
-
Amazon Redshift postgrey sql 中不支持的函数:docs.aws.amazon.com/redshift/latest/dg/…
标签: sql amazon-redshift