现实需求有时候需要将多个查询组合到一个查询中去

这时就需要使用集合查询操作了

这个操作类似于数学中的交集,并集,和补集的操作

 

交集就是返回两个查询共有的记录,关键字是INTERSECT

并集是返回各个查询的所有记录,关键字为UNION或者UNION ALL

补集就是返回第一个查询检索出的记录减去第二个查询检索出的记录之后的剩余记录,关键字是MINUS

 

分完组之后筛选只能使用having关键字,而不能使用where

 

各种示例如下:

获取一次订单满200元或者订单累计满500元的用户


 

获取一次订单满200元并且订单累计满500元的用户


 

获取没有被订购过的商品ID


 

需要注意的是:

UNION和UNION ALL都可以用在集合查询的并集操作,不过后者比前者效率高

因为UNION查询出的内容剔除重复行,同时默认按第一个查询的第一列升序排列

而UNION ALL不做这些,在业务要求允许时,最好使用效率高的UNION ALL

 

使用上述关键字连接两个select语句的时候,查询的列数和列的数据类型要一致

 

UNION在做重复行查询时,不忽略空值,如果有重复的空行则保留一个空行

INTERSECT以及MINUS查询也无重复行,按第一个查询的第一列升序排列

Oracle数据库高级查询(五)集合查询的更多相关文章

  1. .Net程序员学用Oracle系列(14):子查询、集合查询

    1.子查询 1.1.子查询简介 1.2.WITH 子查询 2.集合查询 2.1.UNION 和 UNION ALL 2.2.MINUS 2.3.INTERSECT 2.4.集合运算与 ORDER BY ...

  2. {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询

    Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...

  3. 【SQL查询】集合查询之INTERSECT

    [SQL查询]集合查询之INTERSECT 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...

  4. SQL基础--查询之四--集合查询

    SQL基础--查询之四--集合查询

  5. oracle 数据库,能不能将查询的结果创建成新表。

    这个是可以的.sql:create table tablename1 as select t2. * from tablename2 t2 where t2.filename =‘张三’. 解释:就是 ...

  6. Oracle 数据库基本操作——表操作:查询

    目录: 1.基本查询 2.多表查询 3.多行查询 4.集合查询 2.连接 3.嵌套查询 1.基本查询 语法: select column|others{,columnName|others} from ...

  7. Oracle 数据库常用SQL语句(2)查询语句

    一.SQL基础查询 1.select语句 格式:select 字段 from 表名; 2.where 用于限制查询的结果. 3.查询条件 > < >= <= = != 4.与 ...

  8. oracle数据库高级应用之《触发器的建立》

    (一)oracle数据库触发器的建立 eg1 CREATE OR REPLACE TRIGGER TRIGGER_ON_TD_DEPARTMENT AFTER INSERT OR UPDATE OR ...

  9. Oracle数据库基本操作 (五) —— 使用java调用存储过程

    一.环境准备 登录Oracle数据库scott账号,利用emp进行操作. 1.创建 proc_getyearsal 存储过程 -- 获取指定员工年薪 create or replace procedu ...

随机推荐

  1. Struts输出流向jsp页面写入图片乱码

    通过Struts2输出字节流将图片写到jsp页面上,之前用jquery的div对象的html()方法接收一直显示乱码,查了很多网页都找不到解决办法,不是说contentype="multip ...

  2. HDU:Integer Inquiry

    #include"stdio.h" #include"stdlib.h" #include"string.h" #define N 105 ...

  3. 【转】SVN 查看历史信息

    转载地址:http://lee2013.iteye.com/blog/1074457 SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改.以下四个命令 ...

  4. string xml json格式区别

    string 是一种最普通的储存一串字符的数据格式 xml 是一种可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 它非常适合万维网传输,提供统一的方 ...

  5. PHP下的购物车

    导航 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta h ...

  6. poj3342 Party at Hali-Bula

    树形dp题,状态转移方程应该很好推,但一定要细心. http://poj.org/problem?id=3342 #include <cstdio> #include <cstrin ...

  7. 【20160924】GOCVHelper 图像增强部分(2)

       //填充孔洞     //fillholes     Mat fillHoles(Mat src){         Mat dst = getInnerHoles(src);          ...

  8. FlexCell控件的使用

    private void grid1_GetCellText(object Sender, FlexCell.Grid.GetCellTextEventArgs e) { // 要使用虚表,可以在Gr ...

  9. C#注册表操作,根据键取值

    string into = ""; RegistryKey key = Registry.LocalMachine; RegistryKey myreg = key.OpenSub ...

  10. 【leetcode❤python】191. Number of 1 Bits

    #-*- coding: UTF-8 -*- class Solution(object):    def hammingWeight(self, n):        if n<=0:retu ...