替换特定值的函数

zzzyeukh  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(278)

我有一张这样的table:
文章
日期
地位
代码
“status”列中的值为“00”、“01”、“ob”,而“code”列中的值为:
[05]+000569
[1b]第5555页
690kb
-859
我只对“status”=“00”的行感兴趣。状态“00”只显示[05]+000569这样的值。应使用以下函数修剪这些值:

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

如何使用此函数为“status”=“00”的行构建selectsql?

3wabscal

3wabscal1#

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

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

dz6r00yl2#

“修剪”用于 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

相关问题