SQL Server ÅÅÐòʵÏÖº¯Êýϸ˵
ÅÅÃûº¯ÊýÊÇSQL Server2005мӵŦÄÜ¡£ÔÚSQL Server2005ÖÐÓÐÈçÏÂËĸöÅÅÃûº¯Êý£º
¡¡¡¡1. row_number
¡¡¡¡2. rank
¡¡¡¡3. dense_rank
¡¡¡¡4. ntile
¡¡¡¡Ò»¡¢row_number
¡¡¡¡row_numberº¯ÊýµÄÓÃ;ÊǷdz£¹ã·º£¬Õâ¸öº¯ÊýµÄ¹¦ÄÜÊÇΪ²éѯ³öÀ´µÄÿһÐмǼÉú³ÉÒ»¸öÐòºÅ¡£row_numberº¯ÊýµÄÓ÷¨ÈçÏÂÃæµÄSQLÓï¾äËùʾ£º
¡¡¡¡select row_number() over(order by field1) as row_number,* from t_table
¡¡¡¡ÆäÖÐrow_numberÁÐÊÇÓÉrow_numberº¯ÊýÉú³ÉµÄÐòºÅÁС£ÔÚʹÓÃrow_numberº¯ÊýÊÇҪʹÓÃover×Ó¾äÑ¡Ôñ¶ÔijһÁнøÐÐÅÅÐò£¬È»ºó²ÅÄÜÉú³ÉÐòºÅ¡£
¡¡¡¡Êµ¼ÊÉÏ£¬row_numberº¯ÊýÉú³ÉÐòºÅµÄ»ù±¾ÔÀíÊÇÏÈʹÓÃover×Ó¾äÖеÄÅÅÐòÓï¾ä¶Ô¼Ç¼½øÐÐÅÅÐò£¬È»ºó°´×ÅÕâ¸ö˳ÐòÉú³ÉÐòºÅ¡£over×Ó¾äÖеÄorder by×Ó¾äÓëSQLÓï¾äÖеÄorder by×Ó¾äûÓÐÈκιØÏµ£¬ÕâÁ½´¦µÄorder by ¿ÉÒÔÍêÈ«²»Í¬£¬ÈçÏÂÃæµÄSQLÓï¾äËùʾ£º
¡¡¡¡select row_number() over(order by field2 desc) as row_number,* from t_table order by field1 desc
¡¡¡¡ÎÒÃÇ¿ÉÒÔʹÓÃrow_numberº¯ÊýÀ´ÊµÏÖ²éѯ±íÖÐÖ¸¶¨·¶Î§µÄ¼Ç¼£¬Ò»°ã½«ÆäÓ¦Óõ½WebÓ¦ÓóÌÐòµÄ·ÖÒ³¹¦ÄÜÉÏ¡£ÏÂÃæµÄSQLÓï¾ä¿ÉÒÔ²éѯt_table±íÖеÚ2ÌõºÍµÚ3Ìõ¼Ç¼£º
¡¡¡¡ÉÏÃæµÄSQLÓï¾äʹÓÃÁËCTE£¬¹ØÓÚCTEµÄ½éÉܽ«¶ÁÕß²ÎÔÄ¡¶SQL Server2005ÔÓ̸(1)£ºÊ¹Óù«Óñí±í´ïʽ(CTE)¼ò»¯Ç¶Ì×SQL¡·¡£
¡¡¡¡ÁíÍâҪעÒâµÄÊÇ£¬Èç¹û½«row_numberº¯ÊýÓÃÓÚ·ÖÒ³´¦Àí£¬over×Ó¾äÖеÄorder by ÓëÅÅÐò¼Ç¼µÄorder by Ó¦Ïàͬ£¬·ñÔòÉú³ÉµÄÐòºÅ¿ÉÄܲ»ÊÇÓÐÐøµÄ¡£
¡¡¡¡µ±È»£¬²»Ê¹ÓÃrow_numberº¯ÊýÒ²¿ÉÒÔʵÏÖ²éѯָ¶¨·¶Î§µÄ¼Ç¼£¬¾ÍÊDZȽÏÂé·³¡£Ò»°ãµÄ·½·¨ÊÇʹÓõߵ¹TopÀ´ÊµÏÖ£¬ÀýÈ磬²éѯt_table±íÖеÚ2ÌõºÍµÚ3Ìõ¼Ç¼£¬¿ÉÒÔÏȲé³öǰ3Ìõ¼Ç¼£¬È»ºó½«²éѯ³öÀ´µÄÕâÈýÌõ¼Ç¼°´µ¹ÐòÅÅÐò£¬ÔÙȡǰ2Ìõ¼Ç¼£¬×îºóÔÙ½«²é³öÀ´µÄÕâ2Ìõ¼Ç¼ÔÙ°´µ¹ÐòÅÅÐò£¬¾ÍÊÇ×îÖÕ½á¹û¡£SQLÓï¾äÈçÏ£º
¡¡¡¡select * from (select top 2 * from( select top 3 * from t_table order by field1) a order by field1 desc) b order by field1
¡¡¡¡Õâ¸ö²éѯ½á¹û³ýÁËûÓÐÐòºÅÁÐrow_number
¡¡¡¡¶þ¡¢rank
¡¡¡¡rankº¯Êý¿¼Âǵ½ÁËover×Ó¾äÖÐÅÅÐò×Ö¶ÎÖµÏàͬµÄÇé¿ö
¡¡¡¡ÔÚͼ6ËùʾµÄ¼Ç¼ÖкóÈýÌõ¼Ç¼µÄfield1×Ö¶ÎÖµÊÇÏàͬµÄ¡£Èç¹ûʹÓÃrankº¯ÊýÀ´Éú³ÉÐòºÅ£¬Õâ3Ìõ¼Ç¼µÄÐòºÅÊÇÏàͬµÄ£¬¶øµÚ4Ìõ¼Ç¼»á¸ù¾Ýµ±Ç°µÄ¼Ç¼ ÊýÉú³ÉÐòºÅ£¬ºóÃæµÄ¼Ç¼ÒÀ´ËÀàÍÆ£¬Ò²¾ÍÊÇ˵£¬ÔÚÕâ¸öÀý×ÓÖУ¬µÚ4Ìõ¼Ç¼µÄÐòºÅÊÇ4£¬¶ø²»ÊÇ2¡£rankº¯Êý µÄʹÓ÷½·¨Óërow
Ïà¹ØÎĵµ£º
¶ÔÓںܶàDBAºÍ³ÌÐòÔ±À´Ëµ£¬SQL ServerÖеÄË÷Òý²»ÊÇÒ»¸öİÉúµÄÊÂÎÎÒÃÇÉõÖÁÿÌì¶¼ÔÚʹÓÃËü£¬¶ÔÓÚÄÄЩÇé¿öÏÂÓ¦¸Ã´´½¨Ë÷Òý¶¼ÄÜÒ»Ò»µÄµÀ³ö£¬²»¹ýÓпÉÄÜÎÒÃDz¢Ã»ÓÐ×ÐϸȥÏëËüµÄ¾ßÌåÔÀí£¬±¾ÎĽ«¸ù¾ÝÎÒ¶ÔSQL ServerÖеÄË÷ÒýµÄÀí½â×öÒ»¸ö¼òµ¥µÄ×ܽáºÍ¸ÅÊö£¬Ï£Íû¶Ô´ó¼ÒÄÜÓÐËù°ïÖú£¨Ïêϸ¿É²Î¿¼¡¶SQL Server 2005 Implementation an ......
Æäʵɾ³ýÊý¾Ý¿âÖÐÊý¾ÝµÄ·½·¨²¢²»¸´ÔÓ£¬ÎªÊ²Ã´ÎÒ»¹Òª¶à´ËÒ»¾ÙÄØ£¬Ò»ÊÇÎÒÕâÀï½éÉܵÄÊÇɾ³ýÊý¾Ý¿âµÄËùÓÐÊý¾Ý£¬ÒòΪÊý¾ÝÖ®¼ä¿ÉÄÜÐγÉÏà»¥Ô¼Êø¹ØÏµ£¬É¾³ý²Ù×÷¿ÉÄÜÏÝÈëËÀÑ»·£¬¶þÊÇÕâÀïʹÓÃÁË΢ÈíδÕýʽ¹«¿ªµÄsp_MSForEachTable´æ´¢¹ý³Ì¡£
¡¡¡¡Ò²ÐíºÜ¶à¶ÁÕßÅóÓѶ¼¾Àú¹ýÕâÑùµÄÊÂÇ飺ҪÔÚ¿ª·¢Êý¾Ý¿â»ù´¡ÉÏÇåÀíÒ»¸ö¿Õ¿â£¬µ«ÓÉÓÚ¶ÔÊ ......
¿ìÕÕ¸ôÀë Snapshot Isolation
1¡¢Ð´Èë³ÌÐò²»»á×è°¶ÁÈ¡³ÌÐò
2¡¢ÐµĸôÀë¼¶±ðÌṩÁËÒÔÏÂÓŵ㣺
1) Ìá¸ßÁËÖ»¶ÁÓ¦ÓóÌÐòµÄÊý¾Ý¿ÉÓÃÐÔ
2) ÔÊÐíÔÚOLTP»·¾³ÖÐÖ´ÐзÇ×èÖ¹¶ÁÈ¡²Ù×÷
3) ¿É¶ÔдÈëÊÂÎñ½øÐÐ×Ô¶¯µÄÇ¿ÖÆ³åÍ»¼ì²â
3¡¢ÑÝʾ´úÂë
CREATE DATABASE demo2
GO
USE demo2
ALTER DATABASE demo2 SET allow_snapsho ......
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......