Nginx wxRuby magento sharepoint background vue例子 十大erp系统 android开发项目 angularjs视频教程 less使用 jquery遍历元素 oracle查看数据库状态 多线程实现方式 android调试工具 pcie转sata mysql组合索引 mysql新增用户和权限 python相对路径怎么写 数据库教程 python调用方法 python命令行参数 java集合 java课程 javarandom java文档 java课程学习 java的instanceof java怎么学 变量的类型 java对象是什么 java语言编程 java中文文档 java文件读取 linux启动 迷宫解锁 acmecadconverter oxm 虚拟打印机安装 特战英雄辅助 1667
当前位置: 首页 > 学习教程  > 编程语言

SQL(select)集合运算

2020/9/19 14:43:12 文章标签:

集合运算

  • 若将两张表看出集合,匹配问题就是集合运算中的交集
  • 若将两张表看出集合,不匹配问题就是集合运算中的差
  • 匹配问题+不匹配问题就是集合运算中的并集

集合运算符

  • union/union all
  • intersect 交集
  • minus 差
  • 集合运算要求两个select语句是同构的,即列的个数和数据类型必须一致
  • union的结果集为两个查询结果的并集,是去掉重复值的
  • union all的结果集为两个查询结果的并集,是包含重复值的
  • intersect的结果集为两个查询结果的交集,不包含重复值
  • minus的结果集为属于第一个查询的结果集,但不属于第二个查询的结果集即从第一个查询的结果集中减去他们的交集,不包含重复值
select a.REAL_NAME ,b.REAL_NAME
from ACCOUNT a join ACCOUNT b
on a.id=b.RECOMMENDER_ID
union all
select REAL_NAME ,'no recommender'
from  ACCOUNT where RECOMMENDER_ID is null

排名分页问题

rownum

  • rownum是一个伪列,对查询返回的行编号即行号,有1开始递增
  • 关键点:oracle的rownum数值是在获取每行之后才赋予的
select rownum ,REAL_NAME from ACCOUNT

where rownum<=5的执行过程

  • oracle获取第一个符合条件的行,将它叫做第一行
  • 有5行行了吗?如果没有,oracle就再返回行,因为他要满足行号小于等于5的条件,如果到了5行,那么,oracle就不再返回行
  • oracle获取下一行,并递增行号(从2,到3,再到4,等等)
  • 返回第二步
select rownum ,REAL_NAME from ACCOUNT
where ROWNUM in (1,2,3,5)

rownum只会显示123行,没4就接不上5

select rownum ,REAL_NAME from ACCOUNT
where ROWNUM  <=6
minus
select rownum ,REAL_NAME from ACCOUNT
where ROWNUM  <=3;
select rn,REAL_NAME
from (select ROWNUM rn,REAL_NAME from  ACCOUNT where ROWNUM <=6)
where rn between 4 and 6;
select ROWNUM ,REAL_NAME ,CREATE_DATE
from (select REAL_NAME,CREATE_DATE from ACCOUNT order by CREATE_DATE desc)
where rownum <=6
minus
select ROWNUM ,REAL_NAME ,CREATE_DATE
from (select REAL_NAME,CREATE_DATE from ACCOUNT order by CREATE_DATE desc)
where rownum <=3
select rn,REAL_NAME,CREATE_DATE
from (select rownum rn ,REAL_NAME,CREATE_DATE
    from (
         select REAL_NAME,CREATE_DATE from  ACCOUNT order by  CREATE_DATE
             )where rownum<=6)where rn between 4 and 6;

本文链接: http://www.dtmao.cc/news_show_200159.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?