我在运行PostgreSQL的redshift中有一个表,其中一列是url。
我需要从这个网址中提取参数。
即。如果url = foo.bar?param1 = a& param2 = b& param1 = c
我需要param1的值,该值是来自此URL的
试过一些像
这样的解决方案(string_to_array(url,'param1='))[array_upper(string_to_array(url,'param1='),1)]
和
regexp_matches
Redshift不允许使用数组,因此这两种方法都没用。 有没有办法用SQL解决这个问题?
答案 0 :(得分:1)
尝试使用regexp_matches
,如下所示:
SELECT regexp_matches('url=foo.bar?param1=a¶m2=b¶m1=c', E'param1=([^&=\s]+)(?!.*param1)');