`
ztttly
  • 浏览: 94915 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

union与order by 组合使用

    博客分类:
  • sql
阅读更多
UNION指令的目的是让两个SQL语句的结果集合并起来。这样看起来UNION似乎和JOIN很相似。
因为这两个指令都是从多个表中获取记录。
UNION的一个限制是这多个表的列记录要一致。不能一个取5列,一个取3列。
语法:
[SQL 语句 1]
UNION
[SQL 语句 2]
那么UNION和ORDER BY怎么联合使用?下面有一个例子:
select * from (select s.id si_id,s.short_name,m1.name,m2.code
  from si s, rooms m1, cabinets m2, dev d   
where 1 = 1
   and d.room_id is not null
   and d.cabinet_id is not null
   and d.room_id = m1.id(+)
   and d.cabinet_id = m2.id(+)
   and s.id = d.siteid
   order by s.short_name,m1.name,m2.code,d.sn
) s1
union
select * from (select s.id si_id,s.short_name,m1.name,m2.code
  from si s, rooms m1, cabinets m2, dev d   
where 1 = 1
   and d.room_id is null
   and d.cabinet_id is null
   and d.room_id = m1.id(+)
   and d.cabinet_id = m2.id(+)
   and s.id = d.siteid(+)
order by s.short_name,m1.name,m2.code,d.sn
) s2
union
select * from (select s.id si_id,s.short_name,m1.name,m2.code
  from si s, rooms m1, cabinets m2, dev d   
where 1 = 1
   and d.room_id is not null
   and d.cabinet_id is null
   and d.room_id = m1.id(+)
   and d.cabinet_id = m2.id(+)
   and s.id = d.siteid
order by s.short_name,m1.name,m2.code,d.sn
) s3
分享到:
评论

相关推荐

    union all与order by用法

    UNION ALL 和 ORDER BY 的组合使用 当我们使用 UNION ALL 合并多个 SELECT 语句的结果集时,如果我们想要对整个结果集进行排序,就需要使用 ORDER BY 子句。但是,需要注意的是,ORDER BY 子句只能在 UNION ALL 的...

    MySQL的or、in、union与索引优化

    这种方式同样可以让MySQL自行优化查询过程,但与使用`IN`相比,它可能会消耗更多的CPU资源来进行优化。对于较新的MySQL版本来说,这种方式也能有效利用索引。然而,为了避免将过多负担留给MySQL,不建议程序员频繁...

    union组合结果集时的order问题

    总结来说,`UNION`操作符在SQL中是一个强大的工具,但必须正确地使用`ORDER BY`和`GROUP BY`。理解这些限制可以帮助你编写更有效和高效的SQL查询。在处理大量数据时,合理利用`UNION`、`UNION ALL`以及适当的排序和...

    Sql中的UNION

    - **组合多表**:可以同时使用多个`UNION`操作符连接多个`SELECT`语句。 综上所述,`UNION`在处理多个数据源时非常有用,尤其当需要合并来自不同表的相似数据时。通过正确地使用`UNION`,可以简化复杂的查询过程并...

    MySQL如何使用union all获得并集排序

    在MySQL中,`UNION ALL` 用于合并多个`...同时,理解如何在`UNION ALL`操作中嵌套`ORDER BY`子句,对于编写复杂查询至关重要。这种技术在处理多条件排序和复杂数据组合时非常实用,能够灵活地适应不断变化的业务需求。

    MySQL 通过索引优化含ORDER BY的语句

    9. **多列索引的顺序**:当`WHERE`和`ORDER BY`涉及到多个列时,应确保索引的列顺序与查询中的顺序一致。例如: ```sql SELECT * FROM [table] WHERE uid=1 ORDER BY x,y LIMIT 0,10; ``` 应创建`(uid, x, y)`的...

    数据库实验报告 SQL查询 ,子查询组合

    - **简单查询**:包括选择(SELECT)、投影(投影特定列)、排序(ORDER BY)、分组(GROUP BY)和过滤(WHERE子句),以及使用LIKE进行模糊匹配查询。 - **连接查询**:涉及多个表的数据合并,包括等值连接(JOIN...

    SQL语句之Union和Union All的用法

    3. 可以使用 `ORDER BY` 对 `UNION` 或 `UNION ALL` 的结果进行排序,但 `ORDER BY` 只对整个结果集生效,而不是对单个 `SELECT` 语句的结果。 4. 在某些数据库系统中,`UNION` 和 `UNION ALL` 可能需要更多的内存,...

    MySQL union 语法代码示例分析

    MySQL的UNION操作符是用来合并两个或多个SELECT语句的结果集,形成一个新的单一结果集。...在实践中,务必注意列类型匹配、使用别名以及正确的位置使用ORDER BY和LIMIT,这将有助于编写出高效且准确的SQL查询。

    MySQL中or、in、union与索引优化详析

    2. `SELECT * FROM order WHERE status IN (0, 1) ORDER BY date DESC` 在这种情况下,虽然`IN`操作符可以使用索引,但是`ORDER BY`操作可能会导致索引失效,因为MySQL可能需要额外的步骤来排序结果。 3. `SELECT *...

    详解MySQL中UNION的用法

    - 当使用 `UNION` 或 `UNION ALL` 时,MySQL会自动对结果进行排序,除非你明确指定了 `ORDER BY` 子句。但是,`ORDER BY` 只能应用于整个 `UNION` 结果,而不能应用于单个 `SELECT` 语句。 - 如果没有指定 `ORDER BY...

    SQL实例集锦(很实用)

    在两个SELECT语句中将UNION与ORDER BY一起使用 `UNION`后的结果集可以使用`ORDER BY`子句进行排序。例如,`SELECT column1 FROM table1 UNION SELECT column1 FROM table2 ORDER BY column1;`将合并`table1`和`...

    sql中的高级查询语句

    使用UNION组合的结果集都必须满足相同的结构、字段数目相同和结果集中相应字段的数据类型必须兼容。 嵌套查询是指在一个外层查询中包含有另一个内层查询。子查询通常需要包括标准SELECT查询、FROM子句、WHERE子句、...

    常用SQL语句组合实例集锦

    4. **排序(ORDER BY语句)**:对查询结果进行升序或降序排序。 ```sql SELECT * FROM table_name ORDER BY column1 ASC/DESC; ``` 5. **联接(JOIN操作)**:用于合并来自两个或更多表的数据。常见的JOIN类型...

    SQLSERVER中union,cube,rollup,cumpute运算符使用说明

    6. 只能在最后一个SELECT语句中使用ORDER BY和COMPUTE子句,它们影响最终结果的排序和计数汇总。 7. GROUP BY和HAVING子句可在单个SELECT查询中使用,但不会影响最终结果集。 接下来是CUBE运算符。CUBE用于生成多维...

    sql 查询结果合并union all用法_数据库技巧

    总结来说,`UNION ALL`是SQL中一个强大的工具,它允许你在查询时组合多个数据源,而不管数据是否重复。正确使用它可以极大地提高查询效率和数据处理的灵活性。在实际操作中,应结合业务需求和性能考虑来选择是否使用...

    数据库——的集合运算

    - 在进行UNION或UNION ALL运算时,每个单独的SELECT语句不能包含ORDER BY子句,但可以在最后的UNION或UNION ALL之后添加ORDER BY子句来对最终结果进行排序。 集合运算符可以用来处理复杂的查询问题,例如查询数据的...

Global site tag (gtag.js) - Google Analytics