sql - 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 中最终“/”右侧的所有文本?
在此先感谢,史蒂文
解决方案
选项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 是较短的两次写入。
推荐阅读
- php - 用不同的数量更新相同的id(只更新最先出现的id)
- wix - 如何自动测试可通过 UAC 安装的 MSI?
- skype-for-business - 打开 Skype for Business 聊天室的命令行参数
- reactjs - 为什么 onClick 只在第一次工作?
- r - 加速双循环 R
- c# - 为什么 ConcurrentDictionary 的值需要是线程安全的?
- c# - 如何在 C# 中使用 OpenCV(商业用途)
- ios - Apple 要求在 2019 年 3 月之前使用 iOS 12 SDK 构建所有应用程序更新
- .net - 我如何知道哪个版本的 .NET 框架有这个错误修复?
- postgresql - 在 PostgresSQL 中将 `int` 迁移到 `bigint` 没有任何停机时间?