UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中提取数据。 UNION 的一个限制是两个 SQL 语句所产生的列需要是同样的数据种类。另外,当我们用 UNION 这个指令时,我们只会看到不同的数据值 (类似 SELECT DISTINCT)。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
UNION 的语法如下:
[SQL 语句 1] UNION [SQL 语句 2];
假设我们有以下的两个表格,
而我们要找出来所有有营业额 (Sales) 的日子。要达到这个目的,我们用以下的 SQL 语句:
SELECT Txn_Date FROM Store_Information UNION SELECT Txn_Date FROM Internet_Sales;
结果:
Txn_Date Jan-05-1999 Jan-07-1999 Jan-08-1999 Jan-10-1999 Jan-11-1999 Jan-12-1999
有一点值得注意的是,如果我们在任何一个 SQL 语句 (或是两句都一起) 用 SELECT DISTINCT Txn_Date 的话,那我们会得到完全一样的结果。
解释:UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程
上一篇:代理模式(Proxy Pattern)
下一篇:SQL UNION ALL指令
^