Redshift中是否有一种方法可以从一个文本块中提取所有URL,每个文本都作为单独的行?

时间:2019-02-20 21:48:44

标签: sql regex postgresql amazon-redshift

我正在尝试从可能包含0、1或很多URL的文本块中提取某种格式的所有URL。

例如,一行可能具有值:

'一些文字 blahblahblah.com 更多文字 secondwebsite.com 更多测试”

我希望在输出中将其表示为两行:

'blahblahblah.com'

'secondwebsite.com'

我可以使用REGEXP_SUBSTRSPLIT_PART仅获得第一个.com事件,但理想情况下,我将能够分别提取所有事件。有办法吗?

2 个答案:

答案 0 :(得分:0)

如果您想从具有多个URL的字段中创建单独的行,通常在SQL中是不可行的,建议您使用ETL工具或某些脚本语言(如python)来做到这一点。

答案 1 :(得分:0)

在SQL中从单个输入行返回多个输出行并不容易。

您将需要交叉连接到数字表(例如,包含包含1, 2, 3...的行的表,然后使用该数字引用输入行的单独部分。

底线:可能,但是很混乱。尝试找到一种替代方法来实现这一目标。