UNION 指令类似,INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。UNION 是联集,而 INTERSECT 是交集。
INTERSECT 的语法如下:
[SQL语句 1]
INTERSECT
[SQL语句 2];
INTERSECT
[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
INTERSECT
SELECT Txn_Date FROM Internet_Sales;
INTERSECT
SELECT Txn_Date FROM Internet_Sales;
结果:
Txn_Date |
Jan-07-1999 |
请注意,在 INTERSECT 指令下,不同的值只会被列出一次。
转自:http://www.1keydata.com/cn/sql/sql-intersect.php