从字符串中删除单词的SQL查询

从字符串中删除单词的SQL查询,sql,oracle,Sql,Oracle,我想要一个输出“HELLO亲爱的朋友”作为输入“HELLO亲爱的[好]朋友”。我们可以使用任何特殊字符来标识要删除的单词。假设您的单词以[开头]和[结尾],您可以执行以下操作: sql>从服务器中选择str 你好,亲爱的[好]朋友 sql>从服务器中选择CONCAT(左(str,LOCATE('[',str)-1),右(str,CHAR_长度(str)-LOCATE(']',str)) 你好,亲爱的朋友 您可以使用正则表达式,例如: select regexp_replace('HELLO DE

我想要一个输出“HELLO亲爱的朋友”作为输入“HELLO亲爱的[好]朋友”。我们可以使用任何特殊字符来标识要删除的单词。

假设您的单词以[开头]和[结尾],您可以执行以下操作:

sql>从服务器中选择str

你好,亲爱的[好]朋友

sql>从服务器中选择CONCAT(左(str,LOCATE('[',str)-1),右(str,CHAR_长度(str)-LOCATE(']',str))

你好,亲爱的朋友


您可以使用正则表达式,例如:

select regexp_replace('HELLO DEAR [GOOD] FRIEND'
                     , '\[.*\]', '') from dual;

HELLO DEAR  FRIEND

如果要删除的字符串不是“好”字符串,会发生什么情况?您如何确定要删除的内容?方括号?如果是输入,为什么还要费心删除字符串?只是不要输入…@Ben,这是一个有效的要求。e、 g.我有一个包含消息的表,比如
您的密码是[xyzy]。
,一旦我发送了消息,我想删除敏感数据,但保留其余的用于调试,例如
您的密码是[*******。
。我用正则表达式解决了它,IIRC。