Oracle正则实现:剔除非字母后仅含L/P的字符串判定输出
Oracle 正则表达式实现字段规则转换方案
实现逻辑
- 先通过
REGEXP_REPLACE剔除lock_reason字段中所有非英文字母的字符 - 再通过
REGEXP_LIKE校验清理后的字符串是否仅由大写L、P两种字符组成 - 匹配成功返回
'X',否则返回NULL
完整SQL代码
SELECT LOCK_REASON, CASE WHEN REGEXP_LIKE(REGEXP_REPLACE(LOCK_REASON, '[^A-Za-z]', ''), '^[LP]+$') THEN 'X' ELSE NULL END AS DESIRED_OUTPUT FROM 你的业务表名;
适配说明
如果需要兼容小写的l、p,只需把校验正则修改为^[LPlp]+$即可。
内容的提问来源于stack exchange,提问作者banana_99
相关产品推荐
相关产品推荐

