Oracle起步学习(五)--过滤与排序
来源:互联网 发布:c语言中的关键字有哪些 编辑:程序博客网 时间:2024/06/05 15:23
一、过滤我就不细说了,where语句大家都会用的么。
1.标准条件查询(字符串大小写敏感,日期格式敏感)
select 列名 from 表名 where condiaction1 [ and/or condition2 ...]
eg:select * from emp where sal > 1000;
select * from emp where sal >2000 and deptno = 20;
注意:这里需要注意参数的默认设置,可以这样查询:select * from v$nls_parameters;
NLS_DATE_FORMAT参数注意了啊,DD-MON-RR格式,日期格式为 “日-月-年”;
可以自己更改:alter session set NLS_DATE_FORMAT='yyyy-mm-dd',就可以按照自己的日期查询了。
select * from emp where hiredate='1981-11-17';
2.In (set) 等于值列表中的一个
select 列名 from 表名 where列名 in (条件1,条件2...) [ and/or condition2 ...]
eg:select * from emp where deptno in (10, 30,null);--查询部门号为10,或者30,或者为空的员工
select * from emp where deptno not in (10,30);--查询部门号不为10,或者30的员工
注意:如果集合中含有null,查询中不可以使用 not in ,但可以使用in
3.like模糊查询,通配符:%,_
select 列名 from 表名 where 列名 like "通配符+条件+通配符" [ and/or condition2 ...]
(条件中存在通配符可以设置转义字符: like "\通配符+条件+通配符" escape '\',其中'\' 可以为任何字符)
eg:select * from emp where ename like 'S%';--查询姓名首字母为 'S'的员工
select * from emp where ename like '____';--查询姓名为四位数的员工
insert into emp(empno,ename,sal,deptno) values(1001,'abc_abc',1000,20);
select * from emp where ename like 'abc\_abc' escape '\';--先插入数据,其次查询含有'_'线的员工。
4.betweencondication1and condication2 (包括边界)
select 列名 from 表名 where 列名betweencondication1andcondication2
eg:select * from emp where sal between 1000 and 5000;--查询薪水在为1000到5000的员工,包含1000,5000。
二、排序: order by
1.升序排序 aesc
select * from emp order by sal; --select * from emp order by sal aesc; 相同的select ename,sal from emp order by sal;
2.降序排序desc
小技巧:以为上条语句为:select * from emp order by sal;所以有一下语句
--a append 追加字符 直接输入:
a desc;
效果为:
然后输入'/'回车查询即可。
效果就是:select ename,sal from emp order by sal desc;
还有也可以使用序号去排序:
select ename,sal from emp order by 2 desc;--用序号代替sal
3.order by 后面+多列;先按照order by 后第一列排序,然后是第二列,以此类推
select * from emp order by sal,deptno;--结果按照sal升序,然后deptno升序排序
select * from emp order by sal,deptno desc;--结果按照sal升序,然后deptno降序排序(距离desc最近的)
select * from emp order by sal desc,deptno desc;--结果按照sal降序,然后deptno降序排序
4.当含有空值时。
select * from emp order by comm;--升序
select * from emp order by commdesc;--降序
发现了吧,是不是应该把空值排到最后呢。这样写:
select * from emp order by comm descnulls last;
- Oracle起步学习(五)--过滤与排序
- Oracle过滤与排序
- Oracle学习(2):过滤和排序
- Oracle学习(二):过滤和排序
- Oracle起步学习(三)--权限管理
- Oracle起步学习(六)--单行函数
- Oracle起步学习(七)--组函数
- SQL学习之排序与过滤
- android 开发零起步学习笔记(五):布局组件
- Oracle数据库(二)过滤和排序
- oracle--过滤和排序
- oracle过滤和排序
- oracle 学习(五)
- Oracle学习(五)
- oracle 学习(五)
- 02 过滤和排序数据 -oracle学习笔记
- Oracle起步学习(一)---下载、安装、问题解决
- Oracle起步学习(四)--表的管理,操作
- 使用OpenCV 读取图片 ,再用OpenGL显示,图像有错位
- 鸭子模式引出的策略模式
- Ubuntu:Target filesystem doesn't have /sbin/init (Slax 解决)
- maven-web项目的发布
- Lucene:全文检索的基本原理
- Oracle起步学习(五)--过滤与排序
- Android SDK and AVD Manager" cannot be made visible because all of its children are in unavailable
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- 工作一年多了,开始blog之旅吧
- C# 枚举使用和对应说明获取实例
- 最大数的4种方法
- MERGE 函数的使用
- POJ 1159Palindrome
- hdu 4891 模拟水题