Redshift - 拆分列以查找位置不确定的分隔符之间的值
Posted
技术标签:
【中文标题】Redshift - 拆分列以查找位置不确定的分隔符之间的值【英文标题】:Redshift - Split column to find value between delimiter with uncertain position 【发布时间】:2016-05-18 20:48:52 【问题描述】:我有一个红移表,有两列,id 和 link。
当前表
id 链接
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg
我想从链接列中选择值fruit=apple。但问题是 -
&fruit=apple& 可以出现在链接中的任何位置[在第一个链接中,fruit 位于第一个和第二个 & 符号之间。但是,在第二个链接中,水果位于第 3 和第 4 & 符号之间。]
有很多&。所以我不能说我总是想要第 3 和第 4 & 符号之间的值。
链接中 & 符号的数量并不总是恒定的
fruit 的值可以是任何值(并非总是苹果)
我必须基本上寻找文本 fruit= 并在 fruit= 和下一个 & 之间选择值
必填表
id 链接水果
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh apple
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg orange
【问题讨论】:
【参考方案1】:试试REGEXP_REPLACE
:
REGEXP_REPLACE(url, ".*[?&]fruit=([^&]*).*", "$1");
【讨论】:
以上是关于Redshift - 拆分列以查找位置不确定的分隔符之间的值的主要内容,如果未能解决你的问题,请参考以下文章