如何在 SQL Redshift 中进行正则表达式
Posted
技术标签:
【中文标题】如何在 SQL Redshift 中进行正则表达式【英文标题】:how to regex in SQL Redshift 【发布时间】:2020-10-13 10:38:29 【问题描述】:我有以下网址:
pro.somecompany.com/#/aquisitionintelligence/competitiveanalysis/overview/website-performance/hospital.org/*/484/3m?webSource=Desktop
我想要aquisitionintelligence
部分和competitiveanalysis
部分
另外,有时我有这样的链接/#/insights/reports?types=SC
如何只获得reports
部分?
知道如何在 SQL 中执行此操作吗?
【问题讨论】:
请编辑您的问题以提供更多示例输入,以及您所寻求的每个输入的输出。 【参考方案1】:对于复杂分隔符的一般问题,您可以使用regexp_substr()
。
以第三部分为例:
select regexp_substr(col, '[^/?]+', 1, 3)
如果您只想使用单个分隔符的第三部分,请使用split_part()
:
select split_part(col, '/', 3)
【讨论】:
这很好用!你能解释一下特殊字符和结构吗?或向我推荐一个好的来源? @nimi1234 。 . .我参考了有关功能的文档。 “特殊字符”是分隔符。在第一种情况下,它们是返回值中不允许的字符。在第二种情况下,它只是分隔符。以上是关于如何在 SQL Redshift 中进行正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
使用 SQL 的 Amazon Redshift 中的正则表达式
Redshift SQL 可以执行不区分大小写的正则表达式求值吗?
redshift sql使用正则表达式从字符串中获取第一、第二、第三个值,如下所示