【问题标题】:REGEXP_REPLACE function in redshift to replace the stuff() function that replaces the second characterredshift 中的 REGEXP_REPLACE 函数替换替换第二个字符的 stuff() 函数
【发布时间】:2022-01-22 20:16:37
【问题描述】:

我有这个 STUFF() 函数,我想替换它以使其在 redshift 中工作。

WHEN '1' THEN STUFF((select E010_SERIAL_NBR from vars), 2, 1, 'A')

我知道有一个 REGEXP_REPLACE 函数可以做到这一点,但我不知道表达式。

【问题讨论】:

  • 抱歉,您的问题很难理解。您能否编辑您的问题并提供一些输入示例以及您希望收到哪些输出?
  • 嗨约翰,基本上,我正在寻找的是一个正则表达式,我可以使用它来获取字符串中的第二个字符并使用 redshift 中的 REGEXP_REPLACE 函数替换该字符。例如:E010_SERIAL_NBR = 1BCD1HJKLMON56UI 将更改为 1ACD1HJKLMON56UI

标签: amazon-web-services amazon-redshift regexp-replace


【解决方案1】:

看来您的要求是替换字符串的第二个字符

我不知道如何使用正则表达式来做到这一点,但你可以使用:

SELECT LEFT(E010_SERIAL_NBR, 1) || 'A' || SUBSTRING(E010_SERIAL_NBR, 3, 999)

您可以创建一个user-defined function 来创建您自己的STUFF() 表达式。它会是这样的:

create function f_stuff (text, text)
  returns text
stable
as $$
  SELECT LEFT($1, 1) || $2 || SUBSTRING($1, 3, 999)
$$ language sql;

然后调用它:f_stuff(E010_SERIAL_NBR, 'A')

或者,您也可以编写函数来接受位置参数。

【讨论】:

    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 2013-10-25
    • 2011-04-29
    • 2013-04-09
    • 1970-01-01
    • 2014-08-12
    • 2020-12-26
    • 1970-01-01
    相关资源
    最近更新 更多