您的位置:首页 > 数据库

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效率低,会使索引失效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server