易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server 2005 EXCEPT和INTERSECT运算符


--> Title  : SQL Server 2005EXCEPT和INTERSECT运算符
--> Author : wufeng4552
--> Date   : 2009-10-30
 
(一)概念
EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值。
(二)區別
EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。
INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值。
(三)注意點
(3.1) 使用EXCEPT或INTERSECT比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容
(3.2) INTERSECT运算符优先于EXCEPT
(3.3) SELECT INTO必须是包含INTERSECT或EXCEPT运算符的语句中的第一个查询,用来创建容纳最终结果集的表
(3.4)ORDER BY子句中的列名或别名必须引用左侧查询返回的列名
(四)實例
SET NOCOUNT ON
--建立測試數據
DECLARE @T1 TABLE(ID INT,[NAME] VARCHAR(10))
INSERT @T1 SELECT 1,'A'
INSERT @T1 SELECT 1,'A'
INSERT @T1 SELECT 2,'B'
INSERT @T1 SELECT 2,'C'
INSERT @T1 SELECT 3,NULL
INSERT @T1 SELECT NULL,'D'
INSERT @T1 SELECT NULL,NULL
DECLARE @T2 TABLE(ID INT,[NAME] VARCHAR(10))
INSERT @T2 SELECT 1,'A'
INSERT @T2 SELECT 2,'E'
INSERT @T2 SELECT 3,'F'
DECLARE @T3 TABLE(ID INT,[NAME] VARCHAR(10))
INSERT @T3 SELECT 4,'G'
INSERT @T3 SELECT 3,NULL
INSERT @T3 SELECT 5,'H'
--1 EXCEPT从左查询中返回右查询沒有找到的所有非重复值。
--找出@T1表的中不存在@T2表的所有非重复值
SELECT * from @T1
EXCEPT
SELECT * from @T2
/*
ID          NAME
----------- ----------
NULL        NULL
NULL        D
2           B
2           C
3           NULL
*/
--MSSQL2000的版本用NOT EXISTS实现EXCEPT的功能
SELECT DISTINCT * from @T1 T
WHERE NOT EXISTS(SELECT 1 from @T2 WHERE ID=T.ID AND [NAME]=T.[NAME])
/*
ID  


相关文档:

ORACLE数据库里表导入SQL Server数据库

ORACLE数据库里表导入SQL Server数据库
   
  1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver.
    在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(service name)。
   
  2、在WIN2000或者win200 ......

hibernate删除操作的sql语句写法

 
第一种:
public void deleteUser(String byemail) {
  Session session = getSession();
  Transaction transaction = null;
  String hql = "delete from Register where email=?
";
  try {
   transaction = session.beginTransactio ......

SQL ALTER TABLE 语句

出处:http://www.w3school.com.cn/sql/sql_alter.asp ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 SQL ALTER TABLE 语法 如需在表中添加列,请使用下列语法: ALTER TABLE table_name
ADD column_name datatype
要删除表中的列,请使用下列语法:
ALTER TABLE table_name
DROP COLUM ......

PL/SQL开发

bulk collect是可以看做是一种批获取的方式,在我们的plsql的代码段里经常作为into的扩展来使用。对于select id into v from .... 是一个常用的用法。不过这里只能是返回单条记录的时候,才能使用,如果是有多条记录我们就不能用这样的方式,而是使用fetch和循环的方式,不仅使用麻烦,而且性能也底下,这时我们的bulk coll ......

关于sql的链接查询


首先给出两张测试表
a(aid int, adata varchar(20))            b(bid int, bdata varchar(20))
1.join 与 inner join
执行如下语句:
select * from a join b on a.aid = b.bid;
我们会得到如下的结果:
       AID ADAT ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号