【问题标题】:Redshift SQL REGEXP_REPLACE functionRedshift SQL REGEXP_REPLACE 函数
【发布时间】:2021-10-07 15:40:57
【问题描述】:

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

示例值: ABC$ABC$ 因此,只需在第一个“€”之后修剪任何内容。我试过这个,但我无法找出正确的 REGEX 表达式。

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

【问题讨论】:

    标签: sql regex amazon-redshift


    【解决方案1】:

    所以只需在第一个“€”之后修剪任何内容。

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        或者你可以取非€字符的初始序列:

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

        【讨论】:

          猜你喜欢
          • 2019-06-02
          • 2022-01-22
          • 2017-03-01
          • 1970-01-01
          • 2022-01-19
          • 1970-01-01
          • 2018-09-20
          • 2016-02-23
          • 1970-01-01
          相关资源
          最近更新 更多