给出以下字符串
DEA=R,SL=R,CLIA=O,JCAHO=O
我必须提取=
和,
之间的字符串
我需要R,R,O,O
请向我建议该查询。
答案 0 :(得分:2)
使用正则表达式执行此操作。
假设您的字符串来自表col1
的列t1
...
select regexp_replace(col1
, '([A-Z]+)=([A-Z],?)'
, '\2' ) as extr_str
from t1;
此解决方案与发布字符串的格式紧密相关:一系列字母,等号,单个字母(可选)和逗号。您将需要调整搜索模式以反映实际数据中的变化。
答案 1 :(得分:0)
最简单的方法应如下所示,其中REGEXP_REPLACE(...)表示=
之前的所有那些字符和任意数量的(Alphabets AZ)都将它们替换为空白,以提供所需的输出
select REGEXP_REPLACE(
'DEA=R,SL=R,CLIA=O,JCAHO=O','[A-Z]*=','')
from dual;
答案 2 :(得分:0)
使用Oracle正则表达式
REGEXP_REPLACE( value, '\w+=', '' );
此正则表达式将删除等号左侧的单词。它比其他所有答案都简单,并且效果也一样。