Redshift SQL REGEXP_REPLACE 函数
Posted
技术标签:
【中文标题】Redshift SQL REGEXP_REPLACE 函数【英文标题】:Redshift SQL REGEXP_REPLACE function 【发布时间】:2021-10-07 15:40:57 【问题描述】:我有一个从源复制的值(对此无能为力)。我在这里阅读了一些示例https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_REPLACE.html
示例值: ABC$ABC$ 因此,只需在第一个“€”之后修剪任何内容。我试过这个,但我无法找出正确的 REGEX 表达式。
REGEXP_REPLACE(value, '€.*\\.$', '')
【问题讨论】:
【参考方案1】:所以只需在第一个“€”之后修剪任何内容。
为什么要使用正则表达式?为什么不只是..
SELECT LEFT(value, CHARINDEX('€', value)-1)
如果不是所有数据都有欧元符号,请考虑WHERE value like '%€%'
【讨论】:
【参考方案2】:您当前的正则表达式模式包含一个点作为最后一个字符。删除它,您的方法应该有效:
SELECT REGEXP_REPLACE(value, '€.*$', '') AS value_out
FROM yourTable;
【讨论】:
【参考方案3】:或者你可以取非€字符的初始序列:
REGEXP_SUBSTR(value, '^[^€]+')
【讨论】:
以上是关于Redshift SQL REGEXP_REPLACE 函数的主要内容,如果未能解决你的问题,请参考以下文章