like中查询的字符串中有特殊字符,如:'_','%'该怎么查询。
例如:
理论
Oracle数据库中escape用来定义转义符,在转义符后加一个通配符,表示将该通配符变为普通字符。escape一般和like搭配使用。
转义符'/'
(1). select * from tableA where column1 like '/_A%' escape '/';
(2). select * from tableA where column1 like '%#%A%' escape '#';
(1).表示查找字段column1中以 _A 开头的行;
(2).表示查找字段column1中包含 %A 的行。
结论:_ 和 % 均是通配符,如果不定义转义字符,% 可表示零或多个字符,_ 可表示一个字符;例如,'_a' 表示某字段中所有第二个字符是 a 的行,'%a%' 表示某字段中包含 a 的行
实践:在scott用户中新增一行含有特殊字符串ename
<span style="font-family: Tahoma; ">SQL> insert into emp(empno,ename) values(2233,'_SCOTT');</span>已创建 1 行。
SQL> set pagesize 200 linesize 200
SQL> select * from emp where ename like '\_SCOTT%' escape '\';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
2233 _SCOTT
SQL>
本文介绍在Oracle数据库中如何使用LIKE结合转义字符进行精确查询,特别是当查询字符串中含有特殊字符如 '_' 和 '%' 时。通过具体示例说明了如何定义转义字符来避免这些特殊字符被误认为通配符。
8091

被折叠的 条评论
为什么被折叠?



