Redshift SQL - 获取Web URL的最正确部分

时间:2018-04-27 18:26:40

标签: sql string amazon-redshift

我在Amazon Redshift中使用postgres数据库,我需要获取Web URL的最后一部分并且以下代码可以正常工作,但是如果我尝试在大量记录上运行它会使查询挂起并且不会完成:

reverse(left(reverse(post_pg_url_txt),position('/' in reverse(post_pg_url_txt))-1))

是否有人知道更有效的方式将所有文字都放在网址中最后一行“/”的右边,而不是我上面粘贴的代码?

提前致谢, 史蒂芬

1 个答案:

答案 0 :(得分:1)

选项1:

使用split_part function以及反向 slghtly 更好的解决方案

reverse(split_part(reverse(post_pg_url_txt), '/', 1))

选项2:

regexp_count function与split_part

一起使用
split_part(post_pg_url_txt, '/', regexp_count(post_pg_url_txt, '/')+1)

如您所见,选项1更短两次写入。