SQL UNION 联合
时间:2018-11-15 17:47:23 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL UNION组合两个或多个SQL查询的结果集。
SQL UNION语法
SQL UNION将两个或多个SQL SELECT查询的结果集组合成一个结果集,该结果集包含所有查询中的所有行。
SQL UNION语句的语法如下:
SELECT column_list1 FROM table1 UNION (DISTINCT | ALL) SELECT column_list2 FROM table2
将UNION运算符放在两个SQL SELECT语句之间。要组合多个查询结果集,必须遵循以下规则:
- 所有查询中的列的顺序和数目必须相同。
- 相应列的数据类型必须兼容,或至少可转换。
默认情况下,SQL UNION会消除重复的行。在计算重复时,SQL UNION操作符将所有空值视为单个空值。当与UNION组合时,ALL或DISTINCT操作符是可选的。
- 使用ALL运算符,在组合结果集中会显示重复的行。
- 使用DISTINCT运算符消除重复行。如果未显式使用任何运算符,则默认情况下使用DISTINCT运算符。
SQL UNION 例子
首先,我们可以从客户表查询客户所在的城市,从供应商表查询供应商所在的城市。然后,我们使用SQL UNION将两个结果集合并为一个结果集,如下所示:
SELECT city FROM customers UNION SELECT city FROM suppliers
我们可以看到结果是95行。
SQL UNION ALL 示例
如果使用UNION ALL,我们将在输出中看到重复的城市,如下所示:
SELECT city FROM customers UNION ALL SELECT city FROM suppliers
使用ORDER BY子句的SQL UNION 示例
为了对组合的结果集进行排序,我们使用ORDERBY子句。
但是,我们必须在最后一个查询中放入ORDERBY子句。请注意,ORDER BY子句应用于组合结果集。
SELECT city FROM customers UNION SELECT city FROM suppliers ORDER BY city