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  
Ïà¹ØÎĵµ£º
SQLº¯ÊýÖ®ËÄÉáÎåÈ루ת×Ôhttp://ln1058.javaeye.com/blog/191502£©
ÎÊÌâ1£º
SELECT CAST('123.456' as decimal) ½«»áµÃµ½ 123£¨Ð¡ÊýµãºóÃæµÄ½«»á±»Ê¡ÂÔµô£©¡£
Èç¹ûÏ£ÍûµÃµ½Ð¡ÊýµãºóÃæµÄÁ½Î»¡£
ÔòÐèÒª°ÑÉÏÃæµÄ¸ÄΪ
SELECT CAST('123.456' as decimal(38, 2)) ===>123.46
×Ô¶¯ËÄÉáÎåÈëÁË£ ......
¡¡¡¡ÎÒ¾³£Åöµ½ÓÐÈË»áÎÊһЩÊý¾Ý¿âÓÅ»¯·½ÃæµÄÎÊÌ⣬ÎÒ¾õµÃÕâÊÇÒ»×î»ù±¾¼¼ÄÜÒªÇó£¬ÌرðÊÇʹÓÃsql server 2005£¬¶ÔÓÚsql serverµÄÓÅ»¯£¬Ê¹ÓõÄרְdba»ò¼æÖ°dbaÃǹ¤×÷¸üÇáËÉ£¬Ð§Âʸü¸ßÁË£¬µ«ÊÇ»¹ÊÇÓкܶàÐÂÈË¿ÉÄܲ»´óÁ˽⣬ÎÒÔÚÕâ¶ùдһÏÂ×î»ù±¾µÄһЩ½éÉÜ¡£
¡¡¡¡Ò»¡¢Ê×ÏȽéÉÜÒ»ÏÂsql server 2005ÖÐÓÅ»¯Êý¾ÝʱʹÓõ½µÄÁ½¸ö¹¤ ......
--> Title : SQL Server²é詢¿ÉÓôÅÅ̿ռä
--> Author : wufeng4552
--> Date : 2009-10-30 09:59:09
ǰÑÔ
Èç¹ûÄãµÄ×éÖ¯ÓµÓеijÌÐòÒªÇóÒ»¸öºÜ´óÁ¿µÄ´ÅÅ̿ռä»òÕß´ó±ÈÀýµÄÌØ¶¨´ÅÅÌ£¬ÄÇôȷ±£ÔÚ³ÌÐò¿ªÊ¼»òÕ߹ؼüµãʱȷÈÏ´ÅÅÌÇý¶¯Æ÷¾ßÓÐ×ã¹»µÄ´æ´¢¡£Ò»´Î¿ìËÙ¼ì²é¾Í¿ÉÒÔ½ÚÔ¼´óÁ¿µÄʱ¼ä£¬¼õ ......
1.Óà CUBE »ã×ÜÊý¾Ý
CUBE ÔËËã·ûÉú³ÉµÄ½á¹û¼¯ÊǶàάÊý¾Ý¼¯¡£¶àάÊý¾Ý¼¯ÊÇÊÂʵÊý¾ÝµÄÀ©Õ¹£¬ÊÂʵÊý¾Ý¼´¼Ç¼¸ö±ðʼþµÄÊý¾Ý¡£À©Õ¹½¨Á¢ÔÚÓû§´òËã·ÖÎöµÄÁÐÉÏ¡£ÕâЩÁб»³ÆÎªÎ¬¡£¶àάÊý¾Ý¼¯ÊÇÒ»¸ö½á¹û¼¯£¬ÆäÖаüº¬Á˸÷ά¶ÈµÄËùÓпÉÄÜ×éºÏµÄ½»²æ±í¸ñ¡£ CUBE ÔËËã·ûÔÚ SELECT Óï¾äµÄ GROUP BY ×Ó¾äÖÐÖ¸¶¨¡£¸ÃÓï¾äµÄÑ¡ÔñÁбíÓ ......
Ê×Ïȸø³öÁ½ÕŲâÊÔ±í
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 ......