Oracle中的通配符
2015-12-20 13:27
344 查看
这是scott用户下的EMP表
"_"通配符(通配符代表一个字符)
输出结果:
"%"通配符(代表多个字符)
输出结果:
“[]”通配符(方括号范围内的单个字符)
下面使用了正则表达式“^”(匹配输入字符串输入的开始位置)
输出结果:
"[^]"通配符(不等于方括号内的字符)
例如:查找出姓名补位S,A开头的记录
输出结果如下:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7369 | SMITH | CLERK | 7902 | 1980/12/17 | 800 | 20 | |
7499 | ALLEN | SALESMAN | 7698 | 1981/2/20 | 1600 | 300 | 30 |
7521 | WARD | SALESMAN | 7698 | 1981/2/22 | 1250 | 500 | 30 |
7566 | JONES | MANAGER | 7839 | 1981/4/2 | 2975 | 20 | |
7654 | MARTIN | SALESMAN | 7698 | 1981/9/28 | 1250 | 1400 | 30 |
7698 | BLAKE | MANAGER | 7839 | 1981/5/1 | 2850 | 30 | |
7782 | CLARK | MANAGER | 7839 | 1981/6/9 | 2450 | 10 | |
7788 | SCOTT | ANALYST | 7566 | 1987/4/19 | 3000 | 20 | |
7839 | KING | PRESIDENT | 1981/11/17 | 5000 | 10 | ||
7844 | TURNER | SALESMAN | 7698 | 1981/9/8 | 1500 | 0 | 30 |
7876 | ADAMS | CLERK | 7788 | 1987/5/23 | 1100 | 20 | |
7900 | JAMES | CLERK | 7698 | 1981/12/3 | 950 | 30 | |
7902 | FORD | ANALYST | 7566 | 1981/12/3 | 3000 | 20 | |
7934 | MILLER | CLERK | 7782 | 1982/1/23 | 1300 | 10 |
--单个字符 select * from emp where JOB LIKE 'CL_RK'
输出结果:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7369 | SMITH | CLERK | 7902 | 1980/12/17 | 800 | 20 | |
7876 | ADAMS | CLERK | 7788 | 1987/5/23 | 1100 | 20 | |
7900 | JAMES | CLERK | 7698 | 1981/12/3 | 950 | 30 | |
7934 | MILLER | CLERK | 7782 | 1982/1/23 | 1300 | 10 |
--多个字符 select * from emp where JOB LIKE 'MAN%'
输出结果:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7566 | JONES | MANAGER | 7839 | 1981/4/2 | 2975 | 20 | |
7698 | BLAKE | MANAGER | 7839 | 1981/5/1 | 2850 | 30 | |
7782 | CLARK | MANAGER | 7839 | 1981/6/9 | 2450 | 10 |
下面使用了正则表达式“^”(匹配输入字符串输入的开始位置)
--查询出姓名以S或者A开头的记录 select * from emp where REGEXP_LIKE(ENAME,'^[SA]')
输出结果:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7369 | SMITH | CLERK | 7902 | 1980/12/17 | 800 | 20 | |
7499 | ALLEN | SALESMAN | 7698 | 1981/2/20 | 1600 | 300 | 30 |
7788 | SCOTT | ANALYST | 7566 | 1987/4/19 | 3000 | 20 | |
7876 | ADAMS | CLERK | 7788 | 1987/5/23 | 1100 | 20 |
例如:查找出姓名补位S,A开头的记录
select * from emp where REGEXP_LIKE(ENAME,'^[^SA]')
输出结果如下:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7521 | WARD | SALESMAN | 7698 | 1981/2/22 | 1250 | 500 | 30 |
7566 | JONES | MANAGER | 7839 | 1981/4/2 | 2975 | 20 | |
7654 | MARTIN | SALESMAN | 7698 | 1981/9/28 | 1250 | 1400 | 30 |
7698 | BLAKE | MANAGER | 7839 | 1981/5/1 | 2850 | 30 | |
7782 | CLARK | MANAGER | 7839 | 1981/6/9 | 2450 | 10 | |
7839 | KING | PRESIDENT | 1981/11/17 | 5000 | 10 | ||
7844 | TURNER | SALESMAN | 7698 | 1981/9/8 | 1500 | 0 | 30 |
7900 | JAMES | CLERK | 7698 | 1981/12/3 | 950 | 30 | |
7902 | FORD | ANALYST | 7566 | 1981/12/3 | 3000 | 20 | |
7934 | MILLER | CLERK | 7782 | 1982/1/23 | 1300 | 10 |
相关文章推荐
- Oracle中使用expimp时涉及的字符集问题
- oracle恢复删除的数据
- JAVA-系统-【3】-java应用连接oracle正常,但是网页却报错java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
- 使用plsql 连接远程Oracle数据库
- Oracle数据库redo日志损坏恢复方案总结
- oracle中ORA-01219错误的解决方法
- Oracle数据库闪回FLASHBACK命令总结
- net start oracleserviceorcl发生系统错误5
- oracle
- 登录时_ORACLE not available__解决方案
- Failed to upgrade Oracle Cluster Registry configuration
- (转)Oracle查询性能优化
- PS:oracle恢复删除的数据
- Oracle删除表的几种方法
- ORACLE中RECORD、VARRAY、TABLE的使用详解
- 常用oracle函数备份
- oracle行转列(连接字符串函数)
- 【ORACLE】用SYS登录报ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER解决方法
- win7旗舰版(64位)环境下oracle11g的安装方法
- Oracle问题记录(一)