杨鹏飞 发表于 2013-7-11 10:47:41

SQLServe2005中关于EXCEPT与INTERSECT的用法?

淡写轻描 发表于 2013-7-11 10:56:58

注意此语法仅在SQL Server 2005及以上版本支持。1.区别 EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。INTERSECT返回由两个集合中都存在的数据2.注意事项(1).使用SQL Server 2005EXCEPT或INTERSECT比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容(2).INTERSECT运算符优先于EXCEPT      (3).Select INTO必须是包含INTERSECT或EXCEPT运算符的语句中的第一个查询,用来创建容纳最终结果集的表(4).ORDER BY子句中的列名或别名必须引用左侧查询返回的列名3.测试如下:create table A1(id int,markchar(2))gocreate table A2(id int,mark char(2))goinsert into A1      select 1,'t1' union all      select 2,'t2' union all      select 3,'t3' union all      select 4,'t4'goinsert into A2      select 2,'t2' union all      select 3,'m3' union all      select 5,'m5' union all      select 6,'t6'goselect * fromA1EXCEPTselect * from A2goselect * from A1INTERSECTselect * from A2go--EXCEPT结果集为--1      t1--3      t3--4      t4--INTERSECT结果集为--2      t2
页: [1]
查看完整版本: SQLServe2005中关于EXCEPT与INTERSECT的用法?