19操作结果集-并集,差集,交集,结果集排序
1.Union求并集
Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。
1.1限定条件
(1)子结果集要具有相同的结构。
(2)字结果集的列数必须相同。
(3)子结果集对应的数据类型必须可以兼容。
(4)每个子结果集不能包含order by和compute子句。
1.2语法形式
SELECT col_name1 FROM table_name
UNION [ALL]
SELECT col_name2 FROM table_name
注:all表示显示所有记录(即:重复的记录也显示出来)
2.Except形成差集
Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。
2.1限定条件:
(1)子结果集要具有相同的结构。
(2)子结果集的列数必须相同。
(3)子结果集对应的数据类型必须可以兼容。
(4)每个子结果集不能包含order by 和 compute子句。
2.2语法形式
SELECT col_name1 FROM table_name
EXCEPT
SELECT col_name2 FROM table_name
3.InterSect形成交集
InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录。
3.1限定条件
(1)子结果集要具有相同的结构。
(2)子结果集的列数必须相同。
(3)子结果集对应的数据类型必须可以兼容。
(4)每个子结果集不能包含order by或compute子句。
3.2语法形式
SELECT col_name1 FROM table_name
INTERSECT
SELECT col_name2 FROM table_name
4.结果集进行排序
SELECT col_name1 FROM table_name
INTERSECT
SELECT col_name2 FROM table_name
order by col_name3 ASC / DESC #只能够是第一个表的列名
这里只有两点要注意
(1)ORDER BY是对整个运算后的结果排序,并不是对单个数据集。
(2)ORDER BY后面排序的字段名称是第一个数据集的字段名或者别名。