如何在oracle中删除随机子字符串

如何在oracle中删除随机子字符串,oracle,oracle10g,substring,Oracle,Oracle10g,Substring,在给定的问题上我需要你的帮助 我有一个带有列laborder的表,它提供了数据 thorax1[00400-00479] 标题1[00100-00228] lab66[lab661] 整个日期在一列中 我们有一个页面,可以在其中发出命令删除任何给定字符串 对于删除记录,我们只给出方括号中的代码 例如,如果我们需要删除head1[00100-00228],我们只给出00100-00228来删除字符串 这里我的问题是写一个查询,我们可以给00100-00228或00400-00479来删除head1

在给定的问题上我需要你的帮助

我有一个带有列laborder的表,它提供了数据

thorax1[00400-00479] 标题1[00100-00228] lab66[lab661]

整个日期在一列中

我们有一个页面,可以在其中发出命令删除任何给定字符串

对于删除记录,我们只给出方括号中的代码

例如,如果我们需要删除head1[00100-00228],我们只给出00100-00228来删除字符串

这里我的问题是写一个查询,我们可以给00100-00228或00400-00479来删除head1[00100-00228]或thrax1[00400-00479] 记录

在10G中,尝试将列名称从分解列表移动到SELECT语句:

with t as (
select 'thorax1 [00400 - 00479] head1 [00100 - 00228] lab66 [lab661]' col from dual
)
select regexp_replace(col,'\s{0,1}[[:alnum:]]* \[lab661\]','') from t
/                                                        
在10G中,尝试将列名称从分解列表移动到SELECT语句:

with t as (
select 'thorax1 [00400 - 00479] head1 [00100 - 00228] lab66 [lab661]' col from dual
)
select regexp_replace(col,'\s{0,1}[[:alnum:]]* \[lab661\]','') from t
/                                                        

给定数据:thrax1[00400-00479]head1[00100-00228]lab66[lab661]和字符串00100-00228。所需结果字符串是什么?如果用户试图删除00100-00228。在这种情况下,所需输出将是Thrax1[00400-00479]lab66[lab661]。如果用户试图删除00400-00479,则所需输出将是head1[00100-00228]lab66[lab661],给定数据:Thrax1[00400-00479]head1[00100-00228]lab66[lab661]和字符串00100-00228。所需的结果字符串是什么?如果用户试图删除00100-00228。在这种情况下,所需的输出将是HORAX1[00400-00479]lab66[lab661]。如果用户试图删除00400-00479,则所需的输出将是head1[00100-00228]lab66[lab661]SQL>将tcol设置为从双选择regexp_replacecol中选择'Thrax1[00400-00479]head1[00100-00228]lab66[lab661],\s{0,1}[[:alnum:]*[00100-00228]“,来自t;tcol为*错误,位于第1行:ORA-32033:不支持的列别名当我尝试在oracle 10g上运行此操作时,我遇到了上述错误。您能否帮助我解决此问题。我添加了应在10g中工作的示例,请参见。我认为以下内容可能比\s{0,1}更符合逻辑在正则表达式的开始处:^ |\sSQL>将tcol设置为从双选择正则表达式中选择'thrax1[00400-00479]head1[00100-00228]lab66[lab661],\s{0,1}[:alnum:]*[00100-00228]“,来自t;tcol为*错误,位于第1行:ORA-32033:不支持的列别名当我尝试在oracle 10g上运行此操作时,我遇到了上述错误。您能否帮助我解决此问题。我添加了应在10g中工作的示例,请参见。我认为以下内容可能比\s{0,1}更符合逻辑在正则表达式的开头:^|\s