orcale 之 集合操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了orcale 之 集合操作相关的知识,希望对你有一定的参考价值。

  集合操作就是将两个或者多个 sql 查询的结果合并成复合查询。常见的集合操作有UNION(并运算)、UNION ALL、INTERSECT(交运算)和MINUS(差运算)。

UNION

  UNION 运算可以将多个查询结果集相加,形成一个结果集, 其结果相当于集合运算的并运算. UNION 可以将第一个查询结果的所有行与第二个结果集的所有行进行相加,行切消除所有的重复行.语法如下:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例子: 查询名字以 S 或者 M 开始的员工所有信息

 select *
 from emp
 where ename like S%
 UNION
 select *
 from emp
 where ename like M%;

UNION ALL

  UNION ALL 的作用和 UNION 的作用极为相似不同之处就是形成的结果集包含其重复的部分。

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION ALL

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例子: 查询名字以 S 结尾或者 M 开始的员工所有信息

 select *
 from emp
 where ename like %R
 UNION ALL
 select *
 from emp
 where ename like M%;

INTERSECT

  INTERSECT 也用于对两个集合进行操作,与之不同的是用于取交集预算。语法如下:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

INTERSECT

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例子: 查询名字以 R 结尾并且 M 开始的员工所有信息

select *
from emp
where ename like %R
INTERSECT
select *
from emp
where ename like M%;

MINUS

  MINUS 用于查询两个集合的差集,也就是说该运算用于返回所有从第一个查询中返回,但是没有在第二个查询中返回的记录。语法如下:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

MINUS

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

例子:查询名字以 R 结尾但是不以 M 开始的员工所有信息

select *
from emp
where ename like %R
MINUS
select *
from emp
where ename like M%;

 

以上是关于orcale 之 集合操作的主要内容,如果未能解决你的问题,请参考以下文章

ORCALE 中的集合查询

代码片段 - Golang 实现集合操作

Orcal学习----初识Orcal

orcale 之 SQL 语言基础

[C#对Oracle操作]C#操作调用Orcale存储过程有参数

orcale 之函数