Oracle系列三 过滤和排序

WHERE子句

  • 使用WHERE 子句,将不满足条件的行过滤掉。

示例:

SELECT
    employee_id,
    last_name,
    job_id,
     department_id
FROM
    employees
WHERE
    department_id = 90 ;

字符和日期

  • 字符和日期要包含在单引号中。
  • 字符大小写敏感,日期格式敏感。

示例:

SELECT
    last_name,
    job_id,
    department_id
FROM
    employees
WHERE
    last_name = ‘Whalen‘;

比较运算

操作符   含义
= 等于
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 不等于(也可以是!=)

赋值使用 := 符号

比较运算示例:

SELECT
    last_name,
    salary
FROM
    employees
WHERE
    salary <= 3000;

其它比较运算

操作符                     含义
BETWEEN...AND...   在两个值之间 (包含边界)
IN(set)  等于值列表中的一个
LIKE 模糊查询
IS NULL 空值

使用 BETWEEN 运算来显示在一个区间内的值

示例一:

SELECT
    last_name,
    salary
FROM
    employees
WHERE
    salary BETWEEN 2500 AND 3500;

使用 IN运算显示列表中的值

SELECT
    employee_id,
    last_name,
    salary,
    manager_id
FROM
    employees
WHERE
    manager_id IN (
        100,
        101,
        201
    );

LIKE

  • 使用 LIKE 运算选择类似的值
  • 选择条件可以包含字符或数字:
  • % 代表零个或多个字符(任意个字符)。
  • _ 代表一个字符。

示例:

SELECT
    first_name
FROM
    employees
WHERE
    first_name LIKE ‘S%‘;

‘%’和‘-’同时使用

示例:

SELECT
    last_name
FROM
    employees
WHERE
    last_name LIKE ‘_o%‘;

ESCAPE

  • 可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号。
  • 回避特殊符号的:使用转义符。例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可。

示例:

SELECT
    job_id
FROM
    jobs
WHERE
    job_id LIKE ‘IT\_%‘ ESCAPE ‘\‘;

NULL

  • 使用 IS (NOT) NULL 判断空值。
SELECT
    last_name,
    manager_id
FROM
    employees
WHERE
    manager_id IS NULL;

逻辑运算

操作符 含义
AND 逻辑并
OR 逻辑或
NOT 逻辑否

AND

  • AND 要求并的关系为真。

示例:

SELECT
    employee_id,
    last_name,
    job_id,
    salary
FROM
    employees
WHERE
    salary >= 10000
    AND   job_id LIKE ‘%MAN%‘;

OR

  • OR 要求或关系为真。
SELECT
    employee_id,
    last_name,
    job_id,
    salary
FROM
    employees
WHERE
    salary >= 10000
    OR   job_id LIKE ‘%MAN%‘;

NOT

  • NOT 不在这之内
SELECT
    last_name,
    job_id
FROM
    employees
WHERE
    job_id NOT IN (
        ‘IT_PROG‘,
        ‘ST_CLERK‘,
        ‘SA_REP‘
    );

优先级

优先级  名称 
1 算术运算符
2 连接符
3 比较符
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 NOT
7 AND
8 OR
  • 可以使用括号改变优先级顺序

ORDER BY子句

  • 使用 ORDER BY 子句排序
  • ASC(ascend): 升序
  • DESC(descend): 降序
  • ORDER BY 子句在SELECT语句的结尾。

示例:

SELECT
    last_name,
    job_id,
    department_id,
    hire_date
FROM
    employees
ORDER BY
    hire_date;


降序排列

SELECT
    last_name,
    job_id,
    department_id,
    hire_date
FROM
    employees
ORDER BY
    hire_date DESC;

按别名排序:

SELECT
    employee_id,
    last_name,
    salary * 12 annsal
FROM
    employees
ORDER BY
    annsal;

多个列排序:按照ORDER BY 列表的顺序排序。

SELECT
    last_name,
    department_id,
    salary
FROM
    employees
ORDER BY
    department_id,
    salary DESC;

原文地址:https://www.cnblogs.com/loaderman/p/11731650.html

时间: 2024-10-11 21:32:22

Oracle系列三 过滤和排序的相关文章

oracle系列(三)表操作基础

支持的数据类型: 字符型char 定长 最大2000varchar2() 变长 最大4000clob 字符型大对象 最大4G 数字型number范围 -10的38次方到10的+38次方;number(5,2) 一个小数,有效位5个,小数点后2个数字number(5) 表示一个5位的整数 日期类型datetimestamp 二进制数据blob 保密性较高,存入数据库/其他情况,保持在文件服务器,数据库只存文件路径 建表: create table student( stuId varchar2(1

《Entity Framework 6 Recipes》中文翻译系列 (27) ------ 第五章 加载实体和导航属性之关联实体过滤、排序、执行聚合操作

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-9  关联实体过滤和排序 问题 你有一实体的实例,你想加载应用了过滤和排序的相关实体. 解决方案 假设你有如图5-24所示的概念模型 图5-24 一个酒店预定系统的模型 假设我们有一个酒店(Hotel)实体,使用代码清单5-22,获取酒店的商务套房(executive suite),查看是否被预定,并按房价排序. 代码清单5-22.通过方法Entry()和Query()显式加载实体集合,

Oracle学习(2):过滤和排序

Oracle的过滤与排序 where过滤语法 SQL> --查询10号部门的员工 SQL> select * 2  from emp 3  where deptno=10; EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO ---------- -------- --------- ---------- -------------- ----- ---------- ----------

Oracle 第2节 过滤和排序数据

LessonAim While retrieving data from the database, you may need to restrict the rows of data that are displayed or specify the order in which the rows are displayed. This lesson explains the SQL statements that youuse to perform these actions. ?在查询中过

Oracle学习(二):过滤和排序

1.知识点:可以对照下面的录屏进行阅读 SQL> --字符串大小写敏感 SQL> --查询名叫KING的员工信息 SQL> select * 2 from emp 3 where ename = 'KING'; SQL> --日期格式敏感 SQL> --查询入职日期为17-11月-81的员工 SQL> select * 2 from emp 3 where hiredate='17-11月-81'; --正确例子 SQL> ed 已写入 file afiedt.b

〈三〉ElasticSearch的认识:搜索、过滤、排序

目录 上节回顾 本节前言 文档的搜索 URL参数条件搜索 请求体条件搜索 语法与示例: 补充: 小节总结: 文档的过滤filter 语法与举例: filter与bool constant_score cache 小节总结: 文档的聚合分析 准备数据 语法与举例: 其他语法: 补充: 小节总结: 文档的分页.排序 分页 排序 deep paging 补充: 小节总结: 发表日期:2019年9月20日 上节回顾 1.讲了如何对索引CRUD 2.重新解释了type,只是元数据的效果 3.讲了如何对文档

Oracle数据库--过滤和排序

过滤和排序 1. 在查询中过滤行 过滤:使用WHERE子句将不满足条件的行过滤掉 where子句紧跟From子句 1)查询10号部门的员工 SQL> select * 2 from emp 3 where deptno=10; 2)字符串大小写敏感      查询名叫KING的员工 SQL> select * 2 from emp 3* where ename='KING' SQL> / 3)日期格式敏感     查询入职日期是17-11月-81的员工 SQL> select *

ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)

在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,下面就只贴出各层实现功能的代码: Jsp页面实现功能的js代码如下: <script> //用于捕获分类编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态 function beforeEditName(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.

足球和oracle系列(3):oracle过程排名,世界杯第二回合战罢到来!

足球与oracle系列(3):oracle进程排名.世界杯次回合即将战罢! 声明:        这不是技术文档,既然学来几招oracle简单招式.就忍不了在人前卖弄几下.纯为茶余饭后与数朋库友的插科打诨.仅仅为轻松中带有一丝的诙谐,IT技术也能用来调侃一番,还蛮耐人寻味.        同一时候近来数月oracle知识点忘记了不少,为了把知识点重现.点滴间偶出灵感乍现.以一种自由的形式将其公布.因为本人学艺不精.文中列举的样例或故事.当中必定会有与技术联系牵强之处,望大家海涵. 仅仅当是一部小