除连接查询外,SQL中还有一种组合查询,这种查询使用UNION关键字将多个SELECT语句组合起来,将多个SELECT语句的查询结果显示到一个结果集中。组合查询与连接查询不同的是,前者将多个表的查询结果,竖着组合,而后者是将查询结果横着连接。
1使用组合查询
从stu_info表中查询所属院系为“计算机系”,或者年龄大于30岁的学生的信息。
SELECT *
FROM stu_info
WHERE depart='计算机系'
UNION
SELECT * FROM stu_info
WHERE DATADIFF(year,birth,GETDATE())>30
2使用UNION的规则
(1).每个查询语句应当有相同数量的宇段
(2).每个查询语句中相应的字段的类型必须相互兼容
3使用UNION得到复杂的统计汇总样式
联合UNION、GROUP BY和聚合函数三者会得到具有很棒的统计汇总样式的查询结果.
SELECT sno,cno,exam
FROM score
UNION
SELECT sno. '总分:',SUM(exam)
FROM score
GROUP BY sno
UNION
SELECT sno,'平均分', AVG(exam)
FROM score
GROUP BY sno
4排序组合查询的结果
从stu_info表中查询所属院系为“计算机系”或者年龄大于30岁的学生的信息,并按照出生日期进行升序排序.
SELECT *
FROM stu_info
WHERE depart='计算机系'
UNION
$ELECT *
FROM stu_info
WHERE DATEDIFF(year,birth,GETDATE())>30
ORDER BY birth