ORACLE SQL 过滤列举

本文介绍了Oracle SQL中的GROUP BY和HAVING子句用于数据分组,以及WHERE子句和各种过滤运算符的使用,包括BETWEEN、IN、LIKE等。还提到了逻辑运算符AND、OR、NOT,并讨论了ORDER BY子句用于结果排序,以及SET操作符如UNION、UNION ALL、INTERSECT和MINUS的功能。

分组数据里面有一个很总要的语法,就是GROUP BY子句语法,它可以将表中的数据分成若干组:

  1. 在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。
  2. 不能在 WHERE 子句中使用组函数。
  3. 可以在 HAVING 子句中使用组函数。

使用 HAVING 过滤分组:

  1. 行已经被分组;
  2. 使用了组函数;
  3. 满足HAVING 子句中条件的分组将被显示。

从上面截图可以看出GROUP BY和HAVING是经常一起连用的,HAVING后面是组函数。

通常在查询数据时要过滤或者对行进行排序,使用WHERE 子句,将不满足条件的行过滤掉。

在过滤时通常要用到操作符来过滤,常见的操作符有:

  • 比较运算:=,>,>=,<,<=,<>(!=);
  • 其它运算:BETWEEN…AND…,IN(set),LIKE,IS(NOT)NULL,ESCAPE;
  • 逻辑运算:AND,OR,NOT;

  • 如上代码,使用 BETWEEN 运算来显示在一个区间内的值。
  • 使用 IN运算显示列表中的值;
  • 使用 LIKE 运算选择类似的值:选择条件可以包含字符或数字:

(1)% 代表零个或多个字符(任意个字符);

(2)_ 代表一个字符。

(3)‘%’和‘_’可以同时使用。

(4)可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号。

ESCAPE(回避特殊符号的转义符):例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 即可。

逻辑运算符:

AND要求并的关系为真;OR要求或关系为真,NOT逻辑否。

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

SET操作符:

  • 可以个查询用 SET 操作符连接组成一个新的查询
  1. UNION/UNION ALL
  2. INTERSECT
  3. MINUS
  • 排序:ORDER BY
  1. UNION操作符返回两个查询的结果集的并集。
  2. UNION ALL 操作符返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。
  3. INTERSECT 操作符返回两个结果集的交集。
  4. MINUS操作符:返回两个结果集的差集。

注意事项:

  • 在SELECT 列表中的列名和表达式在数量和数据类型上要相对应
  • 括号可以改变执行的顺序
  • ORDER BY 子句:
    • 只能在语句的最后出现
    • 可以使用第一个查询中的列名, 别名或相对位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值