sql server 2005基于集合的操作
2011-01-22 17:56
337 查看
SQL Server 2005目前支持三种集合操作:UNION、ExCEPT和INTERSECT.而SQL SERVER 2000只支持UNION。集合操作在两个输入中比较全部行。UNION返回包含两个输入中所有行的结果集。如果未指定ALL选选,UNION将从结果集中移除重复行。EXCEPT返回出现在左输入但未出现在右输入的不重复行。INTERSECT返回在两个输入中都出现过的不重复行。
集合操作的逻辑处理阶段中ORDER BY不能用于不能用于集合操作的单个查询中。我们只能在查询的最后制定ORDER BY子句,但它将于用于集合操作的结果集。
例如表A数据如下图:
使用EXCEPT的语句select * from dbo.A EXCEPT select *from dbo.A where Field_K <3 order by Field_K desc
使用INTERSECT的情况select * from dbo.A intersect select *from dbo.A where Field_K <3 order by Field_K desc
有此可以发现,我们在使用not in的时候可以用EXCEPT来实现,not in效率低,会使索引失效。
集合操作的逻辑处理阶段中ORDER BY不能用于不能用于集合操作的单个查询中。我们只能在查询的最后制定ORDER BY子句,但它将于用于集合操作的结果集。
例如表A数据如下图:
使用EXCEPT的语句select * from dbo.A EXCEPT select *from dbo.A where Field_K <3 order by Field_K desc
使用INTERSECT的情况select * from dbo.A intersect select *from dbo.A where Field_K <3 order by Field_K desc
有此可以发现,我们在使用not in的时候可以用EXCEPT来实现,not in效率低,会使索引失效。
相关文章推荐
- SQL SERVER 2005 集合操作(except distinct, except all, intersect distinct, intersect all)
- SQL SERVER 2005 集合操作(except distinct, except all, intersect distinct, intersect all)
- SQL Server 2005 XML 操作总结(五)元素(节点)操作——修改、删除、移动、遍历操作
- SQL Server 2005 XML 操作总结(六)属性操作——查询操作
- SQL server 2005基于已存在的表创建分区
- [转]SQL Server实用操作小技巧集合
- 实验三:SQL server 2005基于已存在的表创建分区
- Sql Server 2005 基于通知的缓存失效
- sql server的基于日期的算法集合
- sql server 2005数据库关于数据库本身结构的操作
- SQL Server 字段和对应的说明操作(SQL Server 2005 +)
- sql server 2000/2005 游标的使用操作
- SQL server实用操作小技巧集合
- SQL Server 的集合操作
- SQL Server 2005 XML 操作总结(七)属性操作——插入、修改操作
- 问题:sql server 2005 中数据库关系图无法使用——基于SQL Server 2005
- sql server 2000/2005 游标的使用操作(转)
- 创建sql server 2005 作业,进行异地数据库操作
- SQL Server 2005使用基于行版本控制的隔离级别初探(2
- 基于SQL Server 2005新特性的分页存储过程