替换特定值的函数

Replace Function for specific values

我有一个 table 这样的:

  1. 文章
  2. 日期
  3. 状态
  4. 代码

"Status" 列中的值为“00”、“01”、'OB' "Code" 列中的值如下:

我只对 "Status" = '00' 的行感兴趣。 状态“00”仅显示 [05]+000569 这样的值。 这些值应使用以下函数进行修整:

select replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')

如何仅针对 "Status" = '00' 的行使用此函数构建 SELECT SQL?

我明白了。你想要一个 case 表达式:

select (case when status = '00' then replace(regexp_substr(Code, '(^|[+])[0-9]+'), '+', '')
        end)

"Trim" 为 status = '00',不为其他状态:

SELECT CASE
          WHEN status = '00'                                              --> trim
          THEN                                                            --> for
             REPLACE (REGEXP_SUBSTR (Code, '(^|[+])[0-9]+'), '+', '')     --> '00'
          ELSE
             code                                                         --> else, do nothing
       END
          AS code
  FROM your_table