`
wangxiao5530
  • 浏览: 136829 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

Oracle中union语句中order by用法

阅读更多
union的各个子查询要有相同数量的列,且对应位置的列必须具有相同的数据类型;但列的名字可以不同。
只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So:
如果unoin的几个子查询列名不同,如

Sql代码 
select supplier_id, supplier_name   
from suppliers   
UNION  
select company_id, company_name   
from companies   
ORDER BY ?;  
select supplier_id, supplier_name from suppliers UNION select company_id, company_name from companies ORDER BY ?;

这里的问号如果是company_name,则执行整个查询会报“company_name:invalid identifier”(当然,单独执行第二个含order by的子查询是没有问题的);这是因为unioning后结果集的列名是以第一个参加union的子查询的列名为准的;order by针对的是整个unioning后的结果集。对整个查询结果来说,无”company_name“这个字段
如果是supplier_name,则单独执行第二个含order by的子查询是会报“supplier_name:invalid identifier”的,而执行整个查询是没有问题的,因为order by针对的是unioning后的整个结果集,而这“整个结果集”是有supplier_name这列的(以第一个union子查询的列名作为unioning后整个结果集的列名)

分享到:
评论

相关推荐

    union all与order by用法

    ORDER BY 用于对查询结果进行排序,使用方法是在 SELECT 语句后添加 ORDER BY 子句,例如: ```sql SELECT * FROM t ORDER BY status; ``` 在上面的示例中,我们使用 ORDER BY 对表 t 的结果集进行排序,按照 status...

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的...本文档提供了 Oracle 中常用的 SQL 语句,涵盖了数据库、表、索引、视图等方面的操作,并且介绍了一些高级查询运算符的使用方法。

    oracle常用查询语句示例

    本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...

    Oracle报表经典语句

    本文档将深入解析几个经典的Oracle报表SQL语句,这些语句涉及到了Oracle中的高级功能,如窗口函数、联合查询等,并通过实际案例展示了如何构造报表。 #### 二、SQL语句分析 ##### 1. 分类汇总与总计 此段代码展示...

    Oracle高效SQL语句原则

    在 where 条件中使用函数可能会导致 Oracle database 不能使用索引,降低 SQL 语句的执行效率。因此,应该尽量避免在 where 条件中对查询列使用函数,除非建立了相应的函数索引。 3. 任何在 where 子句中使用 is ...

    ORACLE数据库SQL语句编写优化总结

    总结以上内容,ORACLE数据库SQL语句的编写优化涉及多方面知识,包括优化器的合理选择、高效的表访问方法、共享SQL语句的使用、索引的正确配置和应用、SQL内部操作的处理以及低效SQL语句的识别与优化等。在实际操作中...

    oracle 查询语句实例

    在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的查询示例,帮助你深入理解和熟练掌握Oracle SQL的用法。 1. **基础查询** - `SELECT`语句:用于从表中检索数据,基本格式是`SELECT column1, column2 ...

    Oracle入门语句

    本教程将重点讲解Oracle中的SQL查询语句,帮助你快速上手。 在Oracle中,SQL(结构化查询语言)用于对数据库进行操作,包括查询、插入、更新和删除数据。以下是一些基本的查询语句知识点: 1. **SELECT语句**:这...

    Oracle的sql语句练习题及参考答案

    在“Oracle的SQL语句练习题及参考答案”中,我们很可能会遇到各种与`SELECT`语句相关的练习,这是SQL中最基础且最重要的部分。 `SELECT`语句用于从数据库中检索数据,其基本语法结构如下: ```sql SELECT column1,...

    Oracle集合操作函数union、intersect、minus.docx

    Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和分析。 一、UNION (无重并集) UNION 操作符可以将...

    oracle中sql语句性能优化

    6. **优化GROUP BY和ORDER BY**:避免在GROUP BY或ORDER BY子句中使用计算表达式,这会导致全表扫描。如果可能,先计算出需要的值,然后再进行分组或排序。 7. **选择合适的连接类型**:了解不同的JOIN类型(如...

    经典的ORACLE查询语句教学资料

    "第二天"的资料可能涉及了SQL基础,讲解了如何使用SELECT语句进行基本的数据查询,包括选择字段、过滤记录(WHERE子句)、排序结果(ORDER BY子句)、分组数据(GROUP BY子句)和聚合函数(COUNT、SUM、AVG、MAX、...

    MS、ORACLE等SQL语句大全

    `LIKE`操作符用于模糊匹配,`ORDER BY`进行排序,`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`用于统计和计算。 更高级的查询操作包括UNION、EXCEPT和INTERSECT。UNION合并两个查询结果,去除重复行;UNION ALL保留所有行...

    oracle中sql语句的数据优化[参考].pdf

    8. **ORDER BY语句的优化**:非索引列的ORDER BY可能导致性能下降,应创建相应索引,同时避免在ORDER BY中使用复杂表达式。 9. **SQL语句的共享**:确保相同SQL语句的查询字符串完全一致,利用SGA共享池,减少解析...

    oracle中sql语句的优化日记

    在Oracle数据库中,SQL语句的优化是提升数据库性能的关键环节。以下是一些关于SQL优化的重要知识点,基于提供的内容进行详细解释: 1. **表名顺序优化**:在联接查询中,通常建议将数据量小的表放在FROM子句的前面...

    Oracle高效SQL语句原则.txt

    在Oracle数据库管理与优化的过程中,高效的SQL语句编写是非常重要的一个环节。本文将根据提供的信息“Oracle高效SQL语句原则”进行深入解析,并结合具体的实践经验和理论知识来阐述如何编写出更加高效、性能更佳的...

    ORACLE常用SQL语句大全.docx

    6. 排序:使用 ORDER BY 语句可以对表中的数据进行排序。 7. 求和:使用 SUM 语句可以计算表中的数据的总和。 8. 平均:使用 AVG 语句可以计算表中的数据的平均值。 9. 最大值:使用 MAX 语句可以查找表中的最大值。...

    oracle经典sql语句练习题和答案

    Oracle SQL是数据库管理和数据查询的重要工具,特别是在Oracle数据库系统中,掌握高效的SQL语句编写技巧至关重要。本资源“oracle经典sql语句练习题和答案”提供了在scott用户下的两个典型表格——emp(员工表)和...

    oracle严禁的语句

    - **索引无效的关键字**:LIKE操作符(特别是模式匹配百分号`%`在前)、ORDER BY(需确保所有列都在索引中且非NULL)、CONNECT BY(不使用索引且增加系统负载)。 4. **函数对索引的影响**: - **SUBSTR和LIKE**...

Global site tag (gtag.js) - Google Analytics