首页 > 解决方案 > Redshift SQL - 获取 Web URL 的最右侧部分

问题描述

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

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

有没有人知道比我在上面粘贴的代码更有效的方法来获取 Web URL 中最终“/”右侧的所有文本?

在此先感谢,史蒂文

标签: sqlstringamazon-redshift

解决方案


选项1:

split_part函数与 reverse 一起使用以获得更好的解决方案

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

选项2:

regexp_count 函数与 split_part 一起使用

split_part(post_pg_url_txt, '/', regexp_count(post_pg_url_txt, '/')+1)

如您所见,选项 1 是较短的两次写入。


推荐阅读