打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql union

          UNION 操作符用于合并两个或多个 SELECT语句的结果集。请注意,UNION内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT语句中的列的顺序必须相同。

     举例说明:在employees表中,查询工资大于4000和工资在2500---5500之间的雇员编号,电子邮件地址。

  1. select employee_id   as   employeeid ,  
  2.           email               as   email,  
  3.           salary              as   salary  
  4. from employees where salary>8000  
  5. union  
  6. select employee_id   as   employeeid ,  
  7.           email               as   email,  
  8.           salary              as   salary  
  9. from employees where salary betwee 7000 and 12000;  

        

基础知识普及:类似于union这样的操作在oracle中叫做集合查询,其中还包括:

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;


Union All:对两个结果集进行并集操作,包括重复行,不进行排序;


Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;


Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。


 

注意事项:

1.      在应用union和union all的时候,尽量使用union all(不产生排序操作和去重操作,效率会得到明显的提高);

2.      关于union默认排序的问题,建议使用额外的order by进行排序。例如:

  1. select * from(  
  2. select employee_id  as   employeeid,  
  3.           email              as   email,  
  4.           salary             as   salary  
  5. from employees where salary>8000  
  6. union  
  7. select employee_id  as   employeeid,  
  8.           email              as   email,  
  9.           salary             as   salary  
  10. from employees where salary betwee 7000 and 12000  
  11. ) t  
  12. order by t.employeeid desc;  

 *如果不加order by可能会得出select的排序结果,oracle是不存在默认排序这一说的,在oracle中数据表是无序的堆表,因此select的排序结果其实就是数据的物理存放顺序读取的

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQL常用命令使用方法和sql基本语句
图解 SQL 编程思想:一切皆关系
SQL UNION 和 UNION ALL 操作符
Mysql联合查询union和union all的使用介绍
python面试----连接、表操作
数据透视表的高级应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服