Oracle Union Union All 对查询结果集操作
2017-06-28 23:42
543 查看
在Oracle中提供了三种类型的集合操作: 并(UNION)、交(INTERSECT)、差(MINUS)
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
可以在最后一个结果集中指定Order by子句改变排序方式。
--测试表A中的记录见下 select * from TestA;
--对两个结果集进行并集操作,不包括重复行 select * from TestA where id<3 union select * from TestA where id<6;
--对两个结果集进行并集操作,包括重复行行 select * from TestA where id<3 union all select * from TestA where id<6;
--对两个结果集进行交集操作,不包括重复行 select * from TestA where id<3 intersect select * from TestA where id<6;
--对两个结果集进行差操作(前面的结果集减去后面的),不包括重复行 select * from TestA where id<6 minus select * from TestA where id<3;
--对三个结果集进行取并集操作(取到的结果是从左到右依次的值不进行排序)在最后进行order by 操作 select * from (select * from TestA where id>5 union all select * from TestA where id<3 union all select * from TestA where id<2) order by id asc;
select * from (select * from TestA where id>5 union all select * from TestA where id<3 union all select * from TestA where id<2) order by id desc;
相关文章推荐
- 合并union 和union all用法-sql语句查询结果
- oracle 查询结果横向union
- oracle查询结果运算函数:union /minus /instersct 函数的用法
- mySql联合两个查询结果用UNION或者UNION ALL
- 结果集合并查询(union后不加all可去掉相同结果项)
- Mysql从UNION ALL查询结果集中查询对应列出现错误"Every derived table must have its own alias"
- sql语句查询结果合并union all用法_数据库技巧
- MySQL多个相同结构的表查询并把结果合并放在一起的语句(union all)
- sql语句查询结果合并union all用法_数据库技巧
- ORACLE集合操作符号UNION、UNION ALL、INTERSECT、MINUS来进行查询结果的合并操作
- union all用法,两个查询结果,一起显示,(一般最后添加一行汇总数据可以用这个方法)
- sql 查询结果合并union all用法_数据库技巧
- 一个sql提问,引起的研究。关于union all 中,嵌套查询和直接查询的效率比较。
- sql语句查询结果合并union 和union all用法
- Oracle中使用正则表达式过滤查询结果
- SQL 2000 UNION ALL 子查询增加排序列报错问题
- ORACLE-合并查询结果
- oracle union union all intersect minus
- oracle 查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY,一些练习题