sql - 如何在plsql的正则表达式中排除子字符串“TEMP”但包含字符串“TEMPLATE”
问题描述
如何在 plsql 的正则表达式中排除子字符串“TEMP”但包含字符串“TEMPLATE”。
我正在尝试使用如下条件,但都被排除在外
代码:
SELECT TABLE_NAME
from all_tables
where not regexp_like( table_name, '_(TEMP)')
and regexp_like( table_name, 'TEMPLATE');
解决方案
你真的需要正则表达式吗?怎么样
select table_name
from all_tables
where instr(table_name, 'TEMPLATE') > 0
如果它不是那么简单(根据你的评论),那么考虑这样的事情:
SQL> WITH
2 all_tables (table_name)
3 AS
4 (SELECT 'MY_TEMPLATE' FROM DUAL -- OK
5 UNION ALL
6 SELECT 'EXC_ABC' FROM DUAL -- not OK, contains _ABC
7 UNION ALL
8 SELECT 'EMP' FROM DUAL -- OK
9 UNION ALL
10 SELECT 'DEPT' FROM DUAL -- OK
11 UNION ALL
12 SELECT 'YOUR_TEMPXX2' FROM DUAL) -- not OK, contains _TEMP
13 SELECT *
14 FROM all_tables
15 WHERE NOT REGEXP_LIKE (table_name, '_(TEMP|ABC|DEF|XYZ)|[[:digit]]')
16 OR REGEXP_LIKE (table_name, 'TEMPLATE');
TABLE_NAME
------------
MY_TEMPLATE
EMP
DEPT
SQL>
推荐阅读
- unity3d - 制作一个编辑脚本对象的工具
- python - 计算月份天数的python程序
- javascript - JQUERY post method always return to first table
- html - 有没有办法在css中选择前一个相邻元素?
- ffmpeg - ffmpeg - 屏幕录制中的音频比视频晚 500 毫秒
- python - 查找下一个有效表
- c++ - 从向量中删除特定项目(c++)
- powershell - 如何使用powershell在json文件中的数组中附加键值
- python - Golang 与 Python 中的 UDP 性能不佳
- html - 用于对 JSON 数组的 HTML 响应的 Postman 测试脚本