小编Ani*_*ita的帖子

redshift正则表达式获取多个匹配并展开行

我正在 AWS Redshift 上进行 URL 提取。URL 列如下所示:

url                       item     origin
http://B123//ajdsb        apple    US
http://BYHG//B123         banana   UK
http://B325//BF89//BY85   candy    CA
Run Code Online (Sandbox Code Playgroud)

我想要得到的结果是获取以 B 开头的系列,并且如果 URL 中有多个系列,还可以扩展行。

extracted    item     origin
B123         apple    US
BYHG         banana   UK
B123         banana   UK
B325         candy    CA
BF89         candy    CA
BY85         candy    CA
Run Code Online (Sandbox Code Playgroud)

我当前的代码是:

select REGEXP_SUBSTR(url, '(B[0-9A-Z]{3})') as extracted, item, origin
from data
Run Code Online (Sandbox Code Playgroud)

正则表达式部分运行良好,但我在提取多个值并将它们扩展到新行时遇到问题。我尝试使用REGEXP_MATCHES(url, '(B[0-9A-Z]{3})', 'g'),但 Redshift 上不存在函数 regexp_matches...

sql amazon-redshift

3
推荐指数
1
解决办法
4131
查看次数

标签 统计

amazon-redshift ×1

sql ×1