Redshift SQL REGEXP_REPLACE 函数

Redshift SQL REGEXP_REPLACE function

我有一个从源中复制的值(对此无能为力)。我在这里阅读了一些示例 https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_REPLACE.html

示例值: 美国广播公司$美国广播公司$ 所以只需在第一个“€”之后修剪任何东西。我试过了,但我无法找出正确的 REGEX 表达式。

REGEXP_REPLACE(value, '€.*\.$', '') 

So just trimming anything after the first '€'.

为什么要使用正则表达式?为什么不只是..

SELECT LEFT(value, CHARINDEX('€', value)-1) 

如果并非所有数据都有欧元符号,请考虑 WHERE value like '%€%'

您当前的正则表达式模式包含一个点作为最后一个字符。删除它,您的方法应该有效:

SELECT REGEXP_REPLACE(value, '€.*$', '') AS value_out
FROM yourTable;

或者您可以采用非 € 字符的初始序列:

REGEXP_SUBSTR(value, '^[^€]+')