SQL SERVERÁÙʱ±íµÄʹÓÃ
drop table #Tmp --ɾ³ýÁÙʱ±í#Tmp
create table #Tmp --´´½¨ÁÙʱ±í#Tmp
(
ID int IDENTITY (1,1) not null, --´´½¨ÁÐID,²¢ÇÒÿ´ÎÐÂÔöÒ»Ìõ¼Ç¼¾Í»á¼Ó1
WokNo varchar(50),
primary key (ID) --¶¨ÒåIDΪÁÙʱ±í#TmpµÄÖ÷¼ü
);
Select * from #Tmp --²éѯÁÙʱ±íµÄÊý¾Ý
truncate table #Tmp --Çå¿ÕÁÙʱ±íµÄËùÓÐÊý¾ÝºÍÔ¼Êø
Ïà¹ØÀý×Ó£º
Declare @Wokno Varchar(500) --ÓÃÀ´¼Ç¼ְ¹¤ºÅ
Declare @Str NVarchar(4000) --ÓÃÀ´´æ·Å²éѯÓï¾ä
Declare @Count int --Çó³ö×ܼǼÊý
Declare @i int
Set @i = 0
Select @Count = Count(Distinct(Wokno)) from #Tmp
While @i < @Count
Begin
Set @Str = 'Select top 1 @Wokno = WokNo from #Tmp Where id not in (Select top ' + Str(@i) + 'id from #Tmp)'
Exec Sp_ExecuteSql @Str,N'@WokNo Varchar(500) OutPut',@WokNo Output
Select @WokNo,@i --Ò»ÐÐÒ»ÐаÑÖ°¹¤ºÅÏÔʾ³öÀ´
Set @i = @i + 1
End
ÁÙʱ±í
¿ÉÒÔ´´½¨±¾µØºÍÈ«¾ÖÁÙʱ±í¡£±¾µØÁÙʱ±í½öÔÚµ±Ç°»á»°Öпɼû£»È«¾ÖÁÙʱ±íÔÚËùÓлỰÖж¼¿É¼û¡£
±¾µØÁÙʱ±íµÄÃû³ÆÇ°ÃæÓÐÒ»¸ö±àºÅ·û (#table_name)£¬¶øÈ«¾ÖÁÙʱ±íµÄÃû³ÆÇ°ÃæÓÐÁ½¸ö±àºÅ·û (##table_name)¡£
SQL Óï¾äʹÓà CREATE TABLE Óï¾äÖÐΪ table_name Ö¸¶¨µÄÃû³ÆÒýÓÃÁÙʱ±í£º
CREATE TABLE #MyTempTable (cola INT PRIMARY KEY)
INSERT INTO #MyTempTable VALUES (1)
Èç¹û±¾µØÁÙʱ±íÓÉ´æ´¢¹ý³Ì´´½¨»òÓɶà¸öÓû§Í¬Ê±Ö´ÐеÄÓ¦ÓóÌÐò´´½¨£¬Ôò SQL Server ±ØÐëÄܹ»Çø·ÖÓɲ»Í¬Óû§´´½¨µÄ±í¡£Îª´Ë£¬SQL Server ÔÚÄÚ²¿ÎªÃ¿¸ö±¾µØÁÙʱ±íµÄ±íÃû×·¼ÓÒ»¸öÊý×Öºó׺¡£´æ´¢ÔÚ tempdb Êý¾Ý¿âµÄ sysobjects ±íÖеÄÁÙʱ±í£¬ÆäÈ«ÃûÓÉ CREATE TABLE Óï¾äÖÐÖ¸¶¨µÄ±íÃûºÍϵͳÉú³ÉµÄÊý×Öºó׺×é³É¡£ÎªÁËÔÊÐí×·¼Óºó׺£¬Îª±¾µØÁÙʱ±íÖ¸¶¨µÄ±íÃû table_name ²»Äܳ
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
Ò»¡¢Í¨¹ýÆóÒµ¹ÜÀíÆ÷½øÐе¥¸öÊý¾Ý¿â±¸·Ý¡£´ò¿ªSQL SERVER ÆóÒµ¹ÜÀíÆ÷£¬Õ¹¿ªSQL SERVER×éLOCALϵÄÊý¾Ý¿â£¬ÓÒ¼üµã»÷ÄãÒª±¸·ÝµÄÊý¾Ý¿â£¬ÔÚµ¯³öµÄ²Ëµ¥ÖÐÑ¡ÔñËùÓÐÈÎÎñϵı¸·ÝÊý¾Ý¿â£¬µ¯³ö±¸·ÝÊý¾Ý¿â¶Ô»°¿ò£º
µã»÷Ìí¼Ó°´Å¥£¬Ìîд±¸·ÝÎļþµÄ·¾¶ºÍÎļþÃû£¬µã»÷È·¶¨Ìí¼Ó±¸·ÝÎļþ£¬µã»÷±¸·Ý¶Ô»°¿òÉϵı¸·Ý£¬¿ªÊ¼½øÐб¸·Ý¡£
&nbs ......
²éѯǰ¼¸Ìõ¼Ç¼SQLÔÚ²»Í¬Êý¾Ý¿âÖеÄÓ÷¨
1. ORACLE
SELECT * from TABLE1 WHERE ROWNUM<=N
2. INFORMIX
SELECT FIRST N * from TABLE1
3. DB2
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N
»òÕß
SELECT COLUMN from TABLE FETCH FIRST N ROWS ONLY
4. SQL SERVER
SE ......
ËäÈ»²»ÄÜÍêÈ«±ÜÃâËÀËø£¬µ«¿ÉÒÔʹËÀËøµÄÊýÁ¿¼õÖÁ×îÉÙ¡£½«ËÀËø¼õÖÁ×îÉÙ¿ÉÒÔÔö¼ÓÊÂÎñµÄÍÌÍÂÁ¿²¢¼õÉÙϵͳ¿ªÏú£¬ÒòΪֻÓкÜÉÙµÄÊÂÎñ£º
»Ø¹ö£¬¶ø»Ø¹ö»áÈ¡ÏûÊÂÎñÖ´ÐеÄËùÓй¤×÷¡£
ÓÉÓÚËÀËøÊ±»Ø¹ö¶øÓÉÓ¦ÓóÌÐòÖØÐÂÌá½»¡£
ÏÂÁз½·¨ÓÐÖúÓÚ×î´óÏ޶ȵؽµµÍËÀËø£º
°´Í¬Ò»Ë³Ðò·ÃÎʶÔÏó¡£
±ÜÃâÊÂÎñÖеÄÓû§½»»¥¡£
±£³ÖÊÂÎñ¼ò¶Ì ......
×÷Õߣº°½Ê¿Î°
·þÎñÆ÷£ºIBM X346
CPU:Intel Xeon 3.0 *4
Äڴ棺2GB
Ó²ÅÌ£ºRAID5
OS£ºwin2003 SE
Ò»¡¢MySQL 5.5 M2
MySQL ĬÈÏÒýÇæInnoDB£¬ÓÅ»¯Ç°ºó¼¸ºõÎÞ²î±ð
¶þ¡¢SQL SERVER 2000 SE
´ÓÕâû´Î²âÊÔ¿´£¬MysqlÔÚÊÂÎñÐÔÄܱíÏÖ²»ÈçSQL SERVER¡£Í¬Ê±£¬Á½ÕßÔÚĬÈÏÇé¿ö£¬ÅúÁ¿Insert£¬Mysql±íÏ ......