欢迎来到天天文库
浏览记录
ID:8973563
大小:108.00 KB
页数:4页
时间:2018-04-13
《sql操作结果集-并集、差集、交集、结果集排序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、SQL操作结果集-并集、差集、交集、结果集排序操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。 1、限定条件 要是用Union来连接结果集,有4个限定条件。 (1)、子结果集要具有相同的结构。 (2)、字结果集的列数必须相同。
2、 (3)、子结果集对应的数据类型必须可以兼容。 (4)、每个子结果集不能包含orderby和compute子句。 2、语法形式 select_statementunion[all]select_statement all代表最终的结果集中将包含所有的行,而不能删除重复行。 示例: SELECTNameFROMPerson_1 UNION SELECTNameFROMPerson_2 生成的结果为: 注意到重复记录,孙权与周瑜仅仅显示了一个。下面来将UNION替换成UN
3、IONALL看看是什么结果: SELECTNameFROMPerson_1 UNIONALL SELECTNameFROMPerson_2 注意到重复记录,孙权与周瑜出现了两次,这就是UNIONALL与UNION的不同之处。 B、Except形成差集 Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。 限定条件: 1、子结果集要具有相同的结构。 2、子结果集的列数必须相同。 3、子结果集对应的数据类型必须可以
4、兼容。 4、每个子结果集不能包含orderby和compute子句。 语法形式: select_statementexceptselect_statement 自动删除重复行。 示例: SELECTNameFROMPerson_1 EXCEPT SELECTNameFROMPerson_2 结果: 留意到表Person_2有的,孙权周瑜已被去除。 C、InterSect形成交集 InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边
5、结果集和右边结果集中都有的记录。 1、限定条件 要是用Except来连接结果集,有4个限定条件。 (1)、子结果集要具有相同的结构。 (2)、子结果集的列数必须相同。 (3)、子结果集对应的数据类型必须可以兼容。 (4)、每个子结果集不能包含orderby或compute子句。 2、语法形式 select_statementintersectselect_statement 示例: SELECTNameFROMPerson_1 INTERSECT SE
6、LECTNameFROMPerson_2 返回的结果如下: 留意到只取两张表都有的记录(周瑜,孙权),这就是所谓的交集。 D、结果集的排序 SELECTNameFROMPerson_1 INTERSECT SELECTNameFROMPerson_2 ORDERBYNameDESC --此处的字段名相同了,如果不同,请切记排序列名,只能够是第一个表的列名 这里只有两点要注意 1.ORDERBY是对整个运算后的结果排序,并不是对单个数据集。 2.ORDERBY后面排序的字段名称是第
7、一个数据集的字段名或者别名。
此文档下载收益归作者所有