sql 的MINUS指令的应用(只适用于oracle,别的数据库可以使用联合连接union join!比较少见!)

时间:2022-09-05 14:46:12

MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。

MINUS 的语法如下:(翻译:减法

[SQL 语句 1]
MINUS
[SQL 语句 2];

我们继续使用一样的例子:

Store_Information 表格

Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

Internet Sales 表格

Txn_Date Sales
07-Jan-1999 250
10-Jan-1999 535
11-Jan-1999 320
12-Jan-1999 750

而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:

SELECT Txn_Date FROM Store_Information
MINUS
SELECT Txn_Date FROM Internet_Sales;

结果:

Txn_Date
Jan-05-1999
Jan-08-1999

'Jan-05-1999', 'Jan-07-1999', 和 'Jan-08-1999' 是 "SELECT Txn_Date FROM Store_Information" 所产生的结果。在这里面,'Jan-07-1999' 是存在于 "SELECT Txn_Date FROM Internet_Sales" 所产生的结果中。因此 'Jan-07-1999' 并不在最后的结果中。

请注意,在 MINUS 指令下,不同的值只会被列出一次。 



转载自:http://www.1keydata.com/cn/sql/sql-minus.php