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后整个结果集的列名)
分享到:
相关推荐
ORDER BY 用于对查询结果进行排序,使用方法是在 SELECT 语句后添加 ORDER BY 子句,例如: ```sql SELECT * FROM t ORDER BY status; ``` 在上面的示例中,我们使用 ORDER BY 对表 t 的结果集进行排序,按照 status...
Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的...本文档提供了 Oracle 中常用的 SQL 语句,涵盖了数据库、表、索引、视图等方面的操作,并且介绍了一些高级查询运算符的使用方法。
本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...
本文档将深入解析几个经典的Oracle报表SQL语句,这些语句涉及到了Oracle中的高级功能,如窗口函数、联合查询等,并通过实际案例展示了如何构造报表。 #### 二、SQL语句分析 ##### 1. 分类汇总与总计 此段代码展示...
在 where 条件中使用函数可能会导致 Oracle database 不能使用索引,降低 SQL 语句的执行效率。因此,应该尽量避免在 where 条件中对查询列使用函数,除非建立了相应的函数索引。 3. 任何在 where 子句中使用 is ...
总结以上内容,ORACLE数据库SQL语句的编写优化涉及多方面知识,包括优化器的合理选择、高效的表访问方法、共享SQL语句的使用、索引的正确配置和应用、SQL内部操作的处理以及低效SQL语句的识别与优化等。在实际操作中...
在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的查询示例,帮助你深入理解和熟练掌握Oracle SQL的用法。 1. **基础查询** - `SELECT`语句:用于从表中检索数据,基本格式是`SELECT column1, column2 ...
本教程将重点讲解Oracle中的SQL查询语句,帮助你快速上手。 在Oracle中,SQL(结构化查询语言)用于对数据库进行操作,包括查询、插入、更新和删除数据。以下是一些基本的查询语句知识点: 1. **SELECT语句**:这...
在“Oracle的SQL语句练习题及参考答案”中,我们很可能会遇到各种与`SELECT`语句相关的练习,这是SQL中最基础且最重要的部分。 `SELECT`语句用于从数据库中检索数据,其基本语法结构如下: ```sql SELECT column1,...
Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和分析。 一、UNION (无重并集) UNION 操作符可以将...
6. **优化GROUP BY和ORDER BY**:避免在GROUP BY或ORDER BY子句中使用计算表达式,这会导致全表扫描。如果可能,先计算出需要的值,然后再进行分组或排序。 7. **选择合适的连接类型**:了解不同的JOIN类型(如...
"第二天"的资料可能涉及了SQL基础,讲解了如何使用SELECT语句进行基本的数据查询,包括选择字段、过滤记录(WHERE子句)、排序结果(ORDER BY子句)、分组数据(GROUP BY子句)和聚合函数(COUNT、SUM、AVG、MAX、...
`LIKE`操作符用于模糊匹配,`ORDER BY`进行排序,`COUNT`、`SUM`、`AVG`、`MAX`和`MIN`用于统计和计算。 更高级的查询操作包括UNION、EXCEPT和INTERSECT。UNION合并两个查询结果,去除重复行;UNION ALL保留所有行...
8. **ORDER BY语句的优化**:非索引列的ORDER BY可能导致性能下降,应创建相应索引,同时避免在ORDER BY中使用复杂表达式。 9. **SQL语句的共享**:确保相同SQL语句的查询字符串完全一致,利用SGA共享池,减少解析...
在Oracle数据库中,SQL语句的优化是提升数据库性能的关键环节。以下是一些关于SQL优化的重要知识点,基于提供的内容进行详细解释: 1. **表名顺序优化**:在联接查询中,通常建议将数据量小的表放在FROM子句的前面...
在Oracle数据库管理与优化的过程中,高效的SQL语句编写是非常重要的一个环节。本文将根据提供的信息“Oracle高效SQL语句原则”进行深入解析,并结合具体的实践经验和理论知识来阐述如何编写出更加高效、性能更佳的...
6. 排序:使用 ORDER BY 语句可以对表中的数据进行排序。 7. 求和:使用 SUM 语句可以计算表中的数据的总和。 8. 平均:使用 AVG 语句可以计算表中的数据的平均值。 9. 最大值:使用 MAX 语句可以查找表中的最大值。...
Oracle SQL是数据库管理和数据查询的重要工具,特别是在Oracle数据库系统中,掌握高效的SQL语句编写技巧至关重要。本资源“oracle经典sql语句练习题和答案”提供了在scott用户下的两个典型表格——emp(员工表)和...
- **索引无效的关键字**:LIKE操作符(特别是模式匹配百分号`%`在前)、ORDER BY(需确保所有列都在索引中且非NULL)、CONNECT BY(不使用索引且增加系统负载)。 4. **函数对索引的影响**: - **SUBSTR和LIKE**...