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

Sql 如果字符串包含certein文本,请修剪字符串的结尾,sql,oracle,Sql,Oracle,所以,如果字段包含粗体文本 “2011-11-11:11;一些文本;Kod编号1:999999” 我需要这样的结果 “2011-11-11:11;一些文本;” 或 “2011-11-11:11;一些文本;Kod编号1:*****” 若字段不包含“Kod nr 1:”则字符串不会发生任何变化 我需要在SELECT语句中执行此操作 SELECT field FROM thetable WHERE condition 结果: 2011-11-11 11:11; Some text; Kod n

所以,如果字段包含粗体文本

“2011-11-11:11;一些文本;Kod编号1:999999”

我需要这样的结果

“2011-11-11:11;一些文本;”

“2011-11-11:11;一些文本;Kod编号1:*****”

若字段不包含“Kod nr 1:”则字符串不会发生任何变化

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

SELECT field 
  FROM thetable WHERE condition
结果:

2011-11-11 11:11; Some text; Kod nr 1: 999999"
2011-11-11 11:11; Some text;
2011-11-11 11:11; Some text;
以下是一种方法:

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; Kod nr 1: 999999"
2011-11-11 11:11; Some text;
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; Kod nr 1: 999999"
2011-11-11 11:11; Some text;
2011-11-11 11:11; Some text;
这将“9999”替换为*


field=CASE当字段像“%”Kord nr 1“%”然后替换(字段,'2011-11-11','')否则字段结束时
请发布一些示例数据和所需结果以更好地解释您的需要编辑我的主要帖子您可以使用regexp_replaceUgh,另一个逗号分隔的列反模式。谢谢:)regexp_REPLACE是最好的解决方案。是的,您说得对,这是没有必要的。我更新答案