博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle过滤和排序
阅读量:6568 次
发布时间:2019-06-24

本文共 2391 字,大约阅读时间需要 7 分钟。

 
1 SQL> --字符串大小写敏感 2 SQL> --查询名叫KING的员工 3 SQL> select * 4   2  from emp 5   3  where ename ='KING'; 6   7 SQL> --日期格式敏感 8 SQL> --查询入职日期是17-11月-81的员工 9 SQL> select *10   2  from emp11   3  where hiredate='17-11月-81';
1   2 查询的过程中,要使用符合数据库存储的日期格式,不符合会报出错误 3 SQL> --查看数据格式 4 SQL> select * from v$nls_parameters; 5 SQL> --修改日期格式 6 SQL> alter session set NLS_DATE_FORMAT='yyyy-mm-dd'; 7 测试新格式可用 8 SQL> select * 9   2  from emp10   3  where hiredate='1981-11-17';11 另一种格式:之前的格式12 SQL> alter session set NLS_DATE_FORMAT='DD-MON-RR';
1  2 SQL> --between  and 在。。。。之间3 SQL> --查询薪水1000~2000之间的员工4 SQL> select *5   2  from emp6   3  where sal between 1000 and 207 SQL>  --between  and: 1. 含有边界  2. 小值在前 大值在后;8 前后的大小值不能调换顺序
1 SQL> --in 在。。。之中 2 SQL> --查询部门号是10和20的员工 3 SQL> select * 4   2  from emp 5   3  where deptno in (10,20); 6 SQL> --查询部门号不是10和20的员工 7 SQL> ed 8 已写入 file afiedt.buf 9   1  select *10   2  from emp11   3* where deptno not in (10,20)
1 SQL> --null值 3. 如果集合中含有null,不能使用not in;但可以使用in 2 SQL> select * 3   2  from emp 4   3* where deptno not in (10,20,null) 5 SQL> / 6   7 未选定行 8   9 SQL>select *10   2  from emp11   3* where deptno in (10,20,null)
 
关于not in和null的关系,这篇博客进行了详细的介绍:
 
1 SQL> --模糊查询 %代表任意个任意字符,_代表一个任意字符 2 SQL> --查询名字以S打头的员工 3 SQL> select * 4   2  from emp 5   3  where ename like 'S%'; 6 SQL> --查询名字是4个字的员工 7 SQL>select * 8   2  from emp 9   3* where ename like '____'10 SQL> --转意字符 ,用escape关键字表示此符号后面的字符为转义字符,\处使用的符号可以自定义11 SQL>select *12   2  from emp13   3* where ename like '%\_%' escape '\'14 SQL> rollback;如果对表进行了修改操作,可以使用此进行回滚。
1 SQL> --order by后面 + 列、表达式、别名、序号 ,默认是升序排列,desc是降序 2 SQL> select empno,ename,sal,sal*12 3   2  from emp 4   3  order by sal*12 desc; 5 也可以使用别名 6 SQL>select empno,ename,sal,sal*12 年薪 7   2  from emp 8   3* order by 年薪 desc 9 order中的列名可以用序号代替,但是必须是存在的10 SQL>select empno,ename,sal,sal*12 年薪11   2  from emp12   3* order by 4 desc13 SQL> --order by作用于后面所有的列;desc只作用于离他最近的列14 null值得默认为最大15 SQL> --多个列排序16 SQL> select *17   2  from emp18   3  order by deptno,sal;意思是:如果部门号相同,那么把部门号相同的部分按照工资排序19 SQL>select *20   2  from emp21   3* order by deptno,sal desc;只按照工资进行排序,desc只能作用于工资22 SQL>select *23   2  from emp24   3* order by deptno desc,sal desc;意思是:按照两个列进行排序,分别添加desc25  26 SQL>select *27   2  from emp28   3  order by comm desc29   4  nulls last将null设置为显示在最后
拓展:
设置单页显示的行数
SQL> set pagesize 14

转载于:https://www.cnblogs.com/anzhi/p/7515661.html

你可能感兴趣的文章
linux安装至少有哪两个分区,各自作用是什么?
查看>>
swoole 安装和简单实用
查看>>
文件系统 第八次迭代 VFS相关说明
查看>>
速读《构建之法:现代软件工程》提问
查看>>
SpringCloud注册中心环境搭建euraka
查看>>
ElasticSearch 安装使用
查看>>
React性能分析利器来了,妈妈再也不用担心我的React应用慢了(转)
查看>>
信息安全管理(1):组织的三个层面
查看>>
原生JS实现圆周运动
查看>>
文件的读写
查看>>
前端面试通关指南
查看>>
制作首页的显示列表。
查看>>
同样加班 不同收获
查看>>
数据公钥加密和认证中的私钥公钥
查看>>
c语言中的位移位操作
查看>>
object-c语言的nonatomic,assign,copy,retain的区别
查看>>
js 正则之检测素数
查看>>
linux-多线程
查看>>
第40周二
查看>>
使用虚拟机运行Ubuntu时,主机与宿主机共享文件的方法。
查看>>