zoukankan      html  css  js  c++  java
  • sql union

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

    同一时候。每条 SELECT语句中的列的顺序必须同样。

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

    select employee_id   as   employeeid ,
              email               as   email,
              salary              as   salary
    from employees where salary>8000
    union
    select employee_id   as   employeeid ,
              email               as   email,
              salary              as   salary
    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进行排序。比如:

    select * from(
    select employee_id  as   employeeid,
              email              as   email,
              salary             as   salary
    from employees where salary>8000
    union
    select employee_id  as   employeeid,
              email              as   email,
              salary             as   salary
    from employees where salary betwee 7000 and 12000
    ) t
    order by t.employeeid desc;

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

  • 相关阅读:
    TomCat 的 Jenkins 报错:反向代理设置有误
    【Django】如何在类视图、普通视图单独不做CSRF校验
    【Django】HTML如何显示富文本内容
    Djaong 运行报错:ValueError: Unable to configure handler 'default'
    Windows 环境使用 Xshell 连接 VMware 虚拟机上的 CentOS 系统
    【我的青春我做主】让自己的心境安宁
    Django 使用 Nginx + uWSGI 启动
    Django_文件下载
    追梦何须要问成败,只管向前吧
    PyCharm:设置py文件头部信息
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7145166.html
Copyright © 2011-2022 走看看