7.4.6 集合运算在Transact-SQL语句中的使用原则
与其他Transact-SQL语句一起使用UNION、EXCEPT和INTERSECT运算符时,需要遵循以下的使用原则:
第一个查询可以包含一个INTO子句,用来创建容纳最终结果集的表。只有第一个查询可以使用INTO子句。如果INTO子句出现在其他位置,SQL Server 2005将显示错误消息。
ORDER BY子句只能在语句的结尾处使用,不能在构成语句的各个查询中使用ORDER BY子句。
★ 注意 ★
只有在顶级查询而不是子查询中使用UNION、EXCEPT和INTERSECT时,才能使用ORDER BY子句。
GROUP BY和HAVING子句只能在各个查询中使用,它们不能用于影响最终结果集。
UNION、EXCEPT和INTERSECT可以在INSERT语句中使用。
在执行集合运算操作时,默认按照最后结果表中第一列数据的升序方式排列记录。且各SELECT子句不能含有ORDER BY子句,但是可以将ORDER BY子句放在最后的SELECT语句后面,以便对最后的结果表排序。
实例23 使用ORDER BY子句对集合运算结果排序
本实例将在实例17的集合并运算的基础上,通过使用ORDER BY子句对结果集按照bookcount字段的降序方式排列。实例代码如下:
USE Library |
运行代码,结果如图7.37所示。
ORDER BY子句可以对任何列名排序,在SQL Server中,由于结果表把第一条SELECT语句中的列名作为结果表中的列名,因此,ORDER BY子句中指定的列名必须为第一个SELECT语句中表的列名。
|
| 图7.37 实例运行结果 |
★ 说明 ★
使用ORDER BY子句排序UNION运算结果时,应尽量使用指定位置列序号的方式,这样可以避免出错。
| 回书目 上一节 下一节 |
|
· 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. |
· 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. |
|
||||
| · Windows Server 2008专.. · 华为员工自杀频频拷问.. · 勇闯IT培训黑色围城 · CISSP认证成长之路 · 解析35岁技术人的价值.. · 网络工程师职业规划与.. · LAMP技术精解 · AMD Phenom三核处理器.. |
· 充电计划之热门IT认证.. · 如何有效防御SQL注入攻.. · 2008年上半年全国软考.. · 选择适合自己的IT认证 · IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. · 技术人求职简历完备手册 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Apache技术专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. · 专题:AIX操作系统管理.. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 · 专题:AIX操作系统管理.. |
|||