【问题标题】:REGEXP_REPLACE in redshift红移中的 REGEXP_REPLACE
【发布时间】:2015-05-05 05:49:35
【问题描述】:

我的输入值是一个格式为“2.990.00”的字符串,我想将其转换为“2990.00”,即删除千位分隔符。我尝试了以下但没有运气。

select REGEXP_REPLACE('2.990.00','(\\d)(\\d{1}).(\\d{2})','\\1\\2.\\3');

【问题讨论】:

  • 最后一个点 (.) 后面的最后一个数字是否总是 2 个字符?
  • 或者你的意思是这样的? SELECT REPLACE(SUBSTR('2.990.00',1,5), '.', '');
  • 输入:2.990.00 输出:2990.00 我想删除第一个点
  • 我改进了语言以强调您要删除千位分隔符。避免使用“谢谢”和“感谢任何帮助”之类的短语。

标签: mysql sql postgresql amazon-redshift


【解决方案1】:

不妨试试

 REGEXP_REPLACE('2.990.00','(\d+)\.(\d+)\.(\d+)', '\1\2.\3')

【讨论】:

  • 你有更多关于什么不起作用的细节吗?是语法问题吗?据我测试,我认为正则表达式和替换规则是正确的。
  • 尝试将 \d 替换为 [0-9] 可能吗?
【解决方案2】:

我修好了

选择 REGEXP_REPLACE('2.990.00','(\d).(\d{1})(\d{2})','\1\2\3')

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多