问题:
SELECT * FROM
(SELECT '未发生基因突变' result_std FROM dual
UNION ALL
SELECT '无明显突变' FROM dual
UNION ALL
SELECT '野生型突变' FROM dual
UNION ALL
SELECT '突变' FROM dual)
对于以上数据,
目的:查询出突变前的数据中不包含未、无关键字;即:
查询出:野生型突变、突变
方法一:截取文本的基础上再嵌套一层正则(效率较低)
SELECT result_std
FROM
(SELECT '未发生基因突变' result_std FROM dual
UNION ALL
SELECT '无明显突变' FROM dual
UNION ALL
SELECT '野生型突变' FROM dual
UNION ALL
SELECT '突变' FROM dual)
WHERE regexp_instr(regexp_substr(result_std,'.*突变'),'未|无')=0
结果:
对于数据量较大的情况,在正则截取的基础上继续嵌套使用正则,效率较低
方法二ÿ