SqlÊý¾Ý²ã·ÖÒ³¼¼Êõ
¿´ÁËһƪ½²×ù£¬Ëµµ½Êý¾Ý²ã·ÖÒ³¼¼Êõ£¬Óõ½ÁË4Öз½Ê½£¬1£©Ê¹ÓÃtop *top 2)ʹÓñí±äÁ¿ 3£©Ê¹ÓÃÁÙʱ±í 4£©Ê¹ÓÃROW_NUMBERº¯Êý¡£
ÆäÖÐ×î¿ìµÄÊǵÚ1 ºÍµÚ4Öз½Ê½£¬½ÓÏÂÀ´ÎÒÃÇÀ´¿´¿´ÕâÁ½ÖÖ·½Ê½£º
ÎÒÃÇʹÓÃsql2005×Ô´øµÄÊý¾Ý¿â AdventureWorks²âÊÔ£¬
1£©
--Use Top*Top
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SET @Sql='SELECT T2.* from (
SELECT TOP 10 T1.* from
(SELECT TOP ' + STR(@PageNumber*@Count) +' * from Production.TransactionHistoryArchive
ORDER BY ReferenceOrderID ASC) AS T1
ORDER BY ReferenceOrderID DESC) AS T2
ORDER BY ReferenceOrderID ASC';
EXEC (@sql);
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
½âÎö£ºÎÒÃÇÊÇÒª²é³öµÚ5000Ò³£¬Ã¿Ò³10Ìõ£¬Ò²¾ÍÊǵÚ49991~µÚ50000Ìõ£¬
ÏÈselect³öǰ50000Ìõ£¬ÔÙµ¹Ðò³öºó10Ìõ£¬ÔÙÉýÐòÅÅÁУ¬Ò²¾ÍÊÇ49991~50000Ìõ£¬Ö´ÐÐʱ¼äΪ373ºÁÃë¡£
2£©
--Use ROW_NUMBER
DECLARE @Start datetime,@end datetime;
SET @Start=getdate();
DECLARE @PageNumber INT, @Count INT, @Sql varchar(max);
SET @PageNumber=5000;
SET @Count=10;
SELECT * from
( SELECT ROW_NUMBER()
OVER(ORDER BY ReferenceOrderID) AS RowNumber,
*
from Production.TransactionHistoryArchive) AS T
WHERE T.RowNumber<=@PageNumber*@Count AND T.RowNumber>(@PageNumber-1)*@Count;
SET @end=getdate();
PRINT Datediff(millisecond,@Start,@end);
GO
½âÎö£ºÒ²ÊÇÒª²é³öµÚ5000Ò³£¬Ã¿Ò³10Ìõ¡£ÏȽ«Êý¾ÝÈ«²¿ÅÅÃû£¬ÔÙwhereÁ½¸öÌõ¼þ£¬Ò»¸öÊÇÅÅÃû<=5000*10=50000Ìõ ²¢ÇÒÅÅÃû>4999*10=49990Ìõ£¬Ò²¾ÍÊÇ49991µ½50000Ìõ¡£ Ö´ÐÐʱ¼äΪ156£¬ÕâÖÖ·½Ê½¸üÓÅ¡£Ö÷ÒªÊÇtop·½Ê½ÊÇ·´¸´µÄÈ¥²é£¬ÏûºÄÁËʱ¼ä¡£
Ïà¹ØÎĵµ£º
order by
ÅÅÐòͨ¹ýorder by×Ó¾äʵÏÖ£¬order byÔÚSELECTÓï¾äµÄ×îºó¡£
Óï·¨£º
order by field1 [ASC|DESC][,field2 [ASC|DESC],..,fieldn [ASC|DESC]]
ASC£ºÉýÐò
DESC£º½µÐò
ĬÈÏΪÉýÐò
¿ÕÖµ×÷ΪÎÞÇî´óÀ´´¦Àí¡£
ÁíÍâ¿ÉÒÔ°´ÕÕ²éѯÁбíÖÐÐòºÅ½øÐÐÅÅÐò¡£
ϵͳÔÚÓû§Ð´³ö²éѯÁбíµÄͬʱ¾Í¸³Óèÿ¸öÁÐÃûÒ»¸ ......
Ò»°ãʹÓÃSQL ServerµÄ¼¯³ÉÈÏ֤ʱ£¬¶¼ÐèÒªµÇ½½øÓò£¬ÏÂÃæ½éÉÜÒ»ÖÖ²»ÐèÒªµÇ½Óò¾Í¿ÉÒÔʹÓÃÓòÓû§µÇ½SQL ServerµÄ·½·¨¡£
SQL Server Management Studio 2005ºÍ2008µÄ¿ì½Ý·½Ê½ÈçÏÂͼ£º
SQL Server 2008 x64: "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
SQL ......
Sql Server ÖÐÒ»¸ö·Ç³£Ç¿´óµÄÈÕÆÚ¸ñʽ»¯º¯Êý
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GE ......
SQL Server 2005Éý¼¶µÄ10¸öÀíÓÉ
¡¡ºÜ¶àÈ˹ØÐĵĺ͵£ÐĵͼÊÇ SQL Server 2005 Ïà¶ÔËüµÄǰ°æ±¾SQL Server 2000Ëù×öµÄÖØ´ó¸Ä½ø»òÐÂÔö¹¦ÄÜ¡£ÔÚÎÒÉý¼¶µ½SQL2005Ö®ºó£¬²»µÃ²»ËµµÄ£ºÄãÒ²ÖµµÃÓµÓС£(Ì×ÓÃÒ»¾ä¹ã¸æÓºÇºÇ)
¡¡¡¡ÎÒ×ܽáÁËһϸöÈËÈÏΪSQL Server 2005 ÖÐ×îÖµµÃÄãΪ֮Éý¼¶µÄ10 ¸öÀíÓÉ¡£ÎÞÂÛÄãÊÇÏëÁ˽â»òѧϰSQL Se ......
·ÖÒ³sql²éѯÔÚ±à³ÌµÄÓ¦Óúܶ࣬Ö÷ÒªÓд洢¹ý³Ì·ÖÒ³ºÍsql·ÖÒ³Á½ÖÖ£¬ÎұȽÏϲ»¶ÓÃsql·ÖÒ³£¬Ö÷ÒªÊǺܷ½±ã¡£ÎªÁËÌá¸ß²éѯЧÂÊ£¬Ó¦ÔÚÅÅÐò×Ö¶ÎÉϼÓË÷Òý¡£sql·ÖÒ³²éѯµÄÔÀíºÜ¼òµ¥£¬±ÈÈçÄãÒª²é100ÌõÊý¾ÝÖеÄ30-40Ìõ£¬ÄãÏȲéѯ³öǰ40Ìõ£¬ÔÙ°ÑÕâ30Ìõµ¹Ðò£¬ÔÙ²é³öÕâµ¹ÐòºóµÄǰʮÌõ£¬×îºó°ÑÕâÊ®Ìõµ¹Ðò¾ÍÊÇÄãÏëÒªµÄ½á¹û¡£
  ......