Redshift 运行 PostgreSQL 中的正则表达式

Regular Expression in Redshift running PostgreSQL

我在 redshift 运行 PostgreSQL 中有一个 table,其中一列是 url.

我需要从中提取参数 url。

即。如果 url=foo.bar?param1=a¶m2=b¶m1=c

我需要 param1 的值,它是来自此 url

的 c

尝试了一些解决方案,例如

(string_to_array(url,'param1='))[array_upper(string_to_array(url,'param1='),1)]

regexp_matches

Redshift 不允许数组,所以这两种方法都没有用。 有没有办法使用 SQL 来解决这个问题?

尝试像这样使用 regexp_matches

SELECT regexp_matches('url=foo.bar?param1=a&param2=b&param1=c', E'param1=([^&=\s]+)(?!.*param1)');

[SQL Fiddle Demo]