1、Order by 子句的使用

select column....

from ....

order by ...

1) Order by子句在整个

select语句中的位置:

始终位于最后

2) order by后可以跟什么:

列名,列的别名,表达式,

列出现在select关键字后的

顺序(列号);

3) order by后可以跟多列,

表示先按第一列排序,

如第一列有相同值再按

第二列进行排序,如前二列

均有相同值,则按第三列进行排序...

4) ASC表升序,可以省略.

DESC表降序。

5)空值永远是最大的。

升序排序的时候,空值放在最后

降序排序的时候,空值放在最前面的

note: 出现在order by子句之后的列,不一定出现在select子句中。

2、Where子句的使用

语法:

select col_name,...

from tb_name

where col_name 比较操作表达式

逻辑操作符

col_name 比较操作表达式

1) 作用:对SQL语句返回的数据集进行筛选;

2) 位置:紧跟在from子句后

3) 内容:由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。

4) 所有字符串和日期要用单引号括起来,数值不需要单引号。

日期在Oracle里有特定的格式,’DD-MON-YY’(具体看日期的显示格式),

否则作为一个字符串。

5) 几种常见的操作符:

1》逻辑比较操作符

= > < >= <= != <> ^=

需求:查找工资大于1000的所有员工的last_name和工资。

需求:查找不在45号部门工作的所有员工的id,last_name和dept_id,并且按照dept_id 升序进行排序

select id,last_name,dept_id

from s_emp

where dept_id<>45

order by dept_id;

2》sql比较操作符

between and:在什么范围之内

in(list):在一个列表中

like:模糊查询,即值不是精确的值的时候使用

通配符,即可以代替任何内容的符号

%:通配0到多个字符

_: 当且仅当通配一个字符

转义字符:

默认为\,可以指定 指定的时候用escape 符号指明即可,转义字符只能转义后面的一个字符

between 1 and 4: 包括起止值。限定内容为1到4。

in (1,2,4): 限定内容为1,2,4。

is null:对null值操作特定义的操作符,不能使用=

3》逻辑操作符

当条件有多个的时候使用

and:且逻辑

or:或逻辑

注意:and逻辑比or逻辑要高

not:非逻辑

4)

需求:

1.查找员工id在[5,20]之间的所有员工的id和last_name

select id,last_name

from s_emp

where id between 5 and 20;

or

select id,last_name

from s_emp

where id >=5 and id<=20;

2.查找员工id不在[5,20]之间的所有员工的id和last_name

select id,last_name

from s_emp

where id not between 5 and 20;

or

select id,last_name

from s_emp

where id <5 or id > 20;

3.查找在43或者44号部门的员工的id和last_name;

select id,last_name

from s_emp

where dept_id in(43,44);

or

select id,last_name

from s_emp

where dept_id = 43 or dept_id = 44;

需求:查看员工名字以C字母开头的员工的id,工资。

练习:查看员工名字长度不小于5,且第四个字母为n字母的员工id和工资

需求:查看员工名字中包换一个_的员工id和工资

需求:查看员工提成为为空的员工的id和名字

select id,last_name,commission_pct

from s_emp

where commission_pct is null;

3.逻辑操作符

当条件有多个的时候使用

and:且逻辑

or:或逻辑

注意:and逻辑比or逻辑要高

not:非逻辑

需求:查看员工部门id为41且职位名称为Stock Clerk(存库管理员)的员工id和名字

select id,last_name,dept_id,title

from s_emp

where dept_id = 41

and

title = 'Stock Clerk';

练习:查看员工部门为41 或者 44号部门 且工资大于1000的员工id和名字

select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

(dept_id = 41

or

dept_id = 44);

查看员工部门为41且工资大于1000 或者 44号部门的员工id和名字

select id,last_name,dept_id,title

from s_emp

where salary > 1000

and

dept_id = 41

or

dept_id = 44;

Oracle的排序和限制条件(order by 和where)的更多相关文章

  1. oracle row_number() over(partition by .. order by ..)和rank() over(partition by .. order by ..) 和dense_rank() over(partition by .. order by ..)的相似点与区别

    新建一个测试表 create table dim_ia_test2(device_number varchar2(20),desc2 varchar2(20)) 插入数据后得到: 一.oracle r ...

  2. [大牛翻译系列]Hadoop(6)MapReduce 排序:总排序(Total order sorting)

    4.2.2 总排序(Total order sorting) 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的.有以下实例: 如果要得到某个网站中最受欢迎的网址(URL),就需要 ...

  3. Mysql高手系列 - 第8篇:详解排序和分页(order by & limit),及存在的坑

    这是Mysql系列第8篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符号分开的表示可选其一. 本章内容 详解排序查询 详解limit limit存在的坑 分 ...

  4. Oracle查询排序asc/desc 多列 order by

    查询结果的排序 显示EMP表中不同的部门编号. 如果要在查询的同时排序显示结果,可以使用如下的语句: SELECT 字段列表 FROM 表名 WHERE 条件 ORDER BY 字段名1 [ASC|D ...

  5. oracle 分组排序函数

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示例和 ...

  6. oracle——分析函数——排序值分析函数

    一.问题描述 查询列表时,我们有时需要对查询结果依据某个字段进行排名. 如果每条记录在排序字段上都不相同,我们可以将原查询作为一个视图,查询其rownum,便可以实现简单排序,例如: select r ...

  7. oracle先排序再分页

    只做简单记录 按操作时间排序1 SELECT A.*, ROWNUM RN FROM (SELECT * FROM v_log) A ORDER BY operatetime DESC 结果 可以发现 ...

  8. Oracle分析函数-排序排列(rank、dense_rank、row_number、ntile)

    (1)rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名. (2)dense_rank函数返回一个唯一的值, ...

  9. 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能

    Oracle rank()和dense_rank()的区别是: –rank()是跳跃排序,有两个第二名时接下来就是第四名 –dense_rank()l是连续排序,有两个第二名时仍然跟着第三名 sele ...

随机推荐

  1. php有效的过滤html标签,js代码,css样式标签

    过滤html标签�php中太简单了,我们可以直接使用strip_tags函数来实现了,下面给各位整理了一些关于 strip_tags函数的例子. php过滤html的函数:strip_tags(str ...

  2. include文件时尽量使用绝对路径

    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id'] 的速度是$row[id]的7倍. 3.echo 比 print 快,并且使用ech ...

  3. js去除中间空格

    / 功能: 1)去除字符串前后所有空格 // 2)去除字符串中所有空格(包括中间空格,需要设置第2个参数为:g) function Trim(str,is_global) { var result;  ...

  4. 蓝牙—RFCOMM协议

    RFCOMM是一个简单的协议,其中针对9针RS-232串口仿真附加了部分条款.可支持在两个蓝牙设备之间同时保持高达60路的通信连接.RFCOMM的目的是针对如何在两个不同设备上的应用之间保证一条完整的 ...

  5. 【后台测试】手把手教你jmeter压测

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处.  转载请注明出处:http://www.cnblogs.com/by-dream/p/5611555.html 我知道我迟早是要踏上了后台测试之路 ...

  6. WINFORM 打开PDF

    这里使用 Adobe Read 组件 的方式 首先电脑上需要安装AdobeRead VS中添加COM引用 再在工具选项卡中添加Adobe PDF Read 组件即可 从工具箱中直接拖动组件到窗体中即可

  7. 自定义 导航条分割线,tabBar分割线颜色(或者是 去掉)

    UIView * lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, bgView.frame.size.width, 0.5)]; l ...

  8. 为什么微信android图片质量会比iphone的差?

    为什么微信android图片质量会比iphone的差? 我们团队最初也纠结过这个问题,费了半天劲.绕了好大圈,直到最后才发现,原来这是谷歌犯得一个“小”错误,而且一直错到了今天. 谷歌的错就在于:li ...

  9. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

  10. FTP上传

    package cn.zto.util; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileIn ...