如果字符串包含certein文本,则修剪字符串的结尾

时间:2018-05-31 12:29:24

标签: sql oracle

因此,如果字段包含粗体文字

“2011-11-11 11:11;一些文字; Kod nr 1: 999999”

我需要像

这样的结果

“2011-11-11 11:11;有些文字;”

“2011-11-11 11:11;一些文字; Kod nr 1:******”

如果字段不包含“Kod nr 1:”字符串不会发生任何事情。

我需要在SELECT语句中执行此操作

2 个答案:

答案 0 :(得分:2)

用*

替换“9999”
    SELECT REGEXP_REPLACE(field, '(Kod nr 1: )(.*)', '\1 ****')             
    FROM table

答案 1 :(得分:1)

SELECT field 
  FROM thetable WHERE condition

结果:

2011-11-11 11:11; Some text; Kod nr 1: 999999"

这是一种方法:

SELECT CASE WHEN field LIKE '%Kod nr 1%' 
            THEN SUBSTR(field, 0, INSTR(field, 'Kod nr 1:') - 1)
            ELSE field 
       END 
  FROM thetable WHERE condition

结果:

2011-11-11 11:11; Some text;

这是另一个:

SELECT REGEXP_REPLACE(field, 'Kod nr 1:.*', '') 
  FROM thetable WHERE condition

结果:

2011-11-11 11:11; Some text;