UNION 等集合运算符通常都会除去重复的记录。
■注意事项① ——作为运算对象的记录的列数必须相同
如果一部分记录包含2 列,另一部分记录包含3 列时会发生错误,无法进行加法运算。
错误提示:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。
■注意事项② ——作为运算对象的记录中列的类型必须一致
ELECT的内容里,相同位置上的列必须是同一数据类型。
错误提示:操作数类型冲突: XXX与 YYY 不兼容。
一定要使用不同数据类型的列时,可以使用6-1 节中的类型转换函数CAST。
■ 注意事项③ —— 可以使用任何SELECT语句,但ORDER BY子句只能在最后使用一次
通过UNION 进行并集运算时可以使用任何形式的SELECT 语句,之前学过的WHERE、GROUP BY、HAVING 等子句都可以使用。但是ORDER BY 只能在最后使用一次
如果想在UNION 的结果中保留重复行,只需要在UNION 后面添加ALL 关键字就可以了。这里的ALL 选项,在UNION 之外的集合运算符中同样可以使用。
同时使用 UNION 和 INTERSECT 时,INTERSECT 会优先执行。