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, '^[^€]+')
我有一个从源中复制的值(对此无能为力)。我在这里阅读了一些示例 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, '^[^€]+')