UNION 并

使用多条 SELECT 语句,将结果作为一个结果集返回,可以简化复杂的 WHERE 子句

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL', 'IN', 'MI')
UNION  -- 两条或以上SELECT语句,用关键字 UNION 分隔
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4ALL';
  • UNION 中的每个查询必须包含相同的列、表达式或聚集函数,次序不必完全相同。
  • 列数据类型不必完全相同,但必须可以隐含转换
  • 如果遇到不同的列名,只会返回第一个

包含或取消重复的行

UNION 默认去除重复的行,要返回所有的匹配行,可把 UNION 替换成 UNION ALL。注意WHERE不可以完成这种操作。

对结果排序

只能在最后一行使用一条ORDER BY子句