🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: cn.bbs.comp.database
1 messages
1 total messages Started by Galaxy��VOLUNTEERS��Database Tue, 17 Nov 2009 10:07
INTERSECT/EXCEPT VS. IN/NOT IN
#203
Author: Galaxy��VOLUNTEERS��Database
Date: Tue, 17 Nov 2009 10:07
70 lines
3387 bytes
������OLD��������Ȼ�ǵ���ǰ�϶�������INTERSECT/EXCEPT�������ؼ��֣�ǰ���û���
��ĽOracle��+/-���ϲ������SQL Server��ô��Ȼû�С��������������ѹֵ���΢����
�Ե�ʱ�����Թٸ���������˽�һ��SQL Server 2005�µĺ����

���淭��һ��http://www.sqlstuff.dk/post/intersect-except-versus-in-not-in.asp
x����INTERSECT/EXCEPT��IN/NOT IN���бȽϡ�

SQL Server���������õģ������ҵ�������֮�乲��������еĺ���EXCEPT��INTERSE
CT��EXCEPT�������ڵ�һ��������ڵڶ�������У���INTERSECT���ص�һ���͵ڶ���
��Ľ����������ǵ�������Σ�

ʵ��������ҷ����Һ����л��Ƚ�����ӵ����ȫ��ͬ����еı?��ż��Ҳ��������
���󡣣��ѵ������������ֻ�����ԺͿ��������ó��������������Ǵ��������£�
��Щ�ж����������������������һ���Լ�ֻ��IN��NOT IN��

Ϊ�˲��ԣ��ҽ������������Ա?
DECLARE @I INT 
SET @I = 0 

WHILE @I < 10000 BEGIN 
 IF @I % 5 <> 0 
  INSERT INTO Table1 VALUES (@I, REPLICATE('A', 10)) 
 IF @I % 4 <> 0 INSERT 
  INTO Table2 VALUES (@I, REPLICATE('A', 10)) 
 SET @I = @I + 1 
END   

��û�н�������
��������Ҫ��ѯ���ڱ�1�����ڱ�2���С�������֪��ID��һ��Ψһ��unique key����
��ֻ����NOT IN��

SELECT * 
FROM Table1 
WHERE ID NOT IN ( 
 SELECT ID FROM Table2 
) 
GO 

SELECT * FROM Table1 
EXCEPT 
SELECT * FROM Table2 
GO   

�������˶�֪���϶�NOT INЧ�ʲ�ġ����ʲ����23% vs. 77%��3.3�����ҡ�

����Ҳ�����Ҫȷ��ID������Ҫȷ��VALUE����ѯ������£�
SELECT * 
FROM Table1 
WHERE ID NOT IN ( 
 SELECT ID FROM Table2 
) 
OR [Value] NOT IN ( 
 SELECT [Value] FROM Table2 
) 
GO 

SELECT * FROM Table1 
EXCEPT 
SELECT * FROM Table2 
GO   

�����һ������22% vs. 78%��

INTERSECT�Ľ��Ҳ��ͬС�졣
--
Welcome to Database Board
��ӭ������ݿ��
http://bbs.sjtu.edu.cn/bbsdoc?board=database

�� ��Դ:����ˮ˼Դ bbs.sjtu.edu.cn��[FROM: 207.46.55.31]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads