Redshift - 拆分列以查找具有不确定位置的定界符之间的值
Redshift - Split column to find value between delimiter with uncertain position
我在 redshift 中有一个 table,有两列,id 和 link。
当前Table
id link
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg
我想从 link 列中选取值 fruit=apple。但要注意的是 -
&fruit=apple& 可以出现在 link [第一个 link 中的任何位置,水果位于第一个和第二个 & 符号之间。但是,在第二个 link 中,水果在第 3 个和第 4 个 & 符号之间。]
有很多&。所以我不能说我总是想要第 3 个和第 4 个 & 符号之间的值。
link 中 & 符号的数量并不总是恒定的
水果的价值可以是任何东西(不总是苹果)
我基本上必须查找文本 fruit= 并在 fruit= 和下一个 &
之间选择值
必需 table
id link fruit
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh apple
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg orange
尝试 REGEXP_REPLACE
:
REGEXP_REPLACE(url, ".*[?&]fruit=([^&]*).*", "");
我在 redshift 中有一个 table,有两列,id 和 link。
当前Table
id link
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg
我想从 link 列中选取值 fruit=apple。但要注意的是 -
&fruit=apple& 可以出现在 link [第一个 link 中的任何位置,水果位于第一个和第二个 & 符号之间。但是,在第二个 link 中,水果在第 3 个和第 4 个 & 符号之间。]
有很多&。所以我不能说我总是想要第 3 个和第 4 个 & 符号之间的值。
link 中 & 符号的数量并不总是恒定的
水果的价值可以是任何东西(不总是苹果)
我基本上必须查找文本 fruit= 并在 fruit= 和下一个 &
之间选择值必需 table
id link fruit
1 www.something.com/bla?lughlegh &fruit=apple& khkhflkjndkj&ljghldh&ljhrleh apple
2 www.somethingelse.com/blabla?sdf&hthdth&sdhfhfY &fruit=orange& ergegertg orange
尝试 REGEXP_REPLACE
:
REGEXP_REPLACE(url, ".*[?&]fruit=([^&]*).*", "");