我有一个正在尝试编写的查询,我需要找到其中包含特殊字符的数据。
我知道如何使用 like '%example%',但我想搜索多个特殊字符而不是几个(我可以使用 OR),所以我创建了一个新表,其中包含我正在查找的所有特殊字符对于.
例如: 从表 1 中选择 * 其中 field1 喜欢 '%*%' 或字段 1,如“%$%” . . . 所以这是我的问题:我可以使用我在上面的查询中创建的表来避免编写多行代码吗?
谢谢。
这是一个选项。
样表:
SQL> select ename, job from emp order by job, ename;
ENAME JOB
---------- ---------
FORD ANALYST
SCOTT ANALYST
ADAMS CLERK
JAMES CLERK
MILLER CLERK
SMITH CLERK
BLAKE MANAGER
CLARK MANAGER
JONES MANAGER
KING PRESIDENT
ALLEN SALESMAN
MARTIN SALESMAN
TURNER SALESMAN
WARD SALESMAN
14 rows selected.
这是您的“新”表,包含您要在上面示例表的列中搜索的字符串:
SQL> select * from test;
WORD
----
GER
LER
这是查询 - 搜索其工作包含存储在
test
表中的“单词”的员工:
SQL> select e.ename, e.job
2 from emp e join test t on instr(e.job, t.word) > 0;
ENAME JOB
---------- ---------
JONES MANAGER
BLAKE MANAGER
CLARK MANAGER
SMITH CLERK
ADAMS CLERK
JAMES CLERK
MILLER CLERK
7 rows selected.
SQL>