Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

sqlµÄ¼¸¸öÅÅÐòº¯Êý

1ÓÃÓÚÅÅÐòµÄº¯Êý
row_number()
rank()
dense_rank()
ntile(group_number)
ÏÂÃæÁоÙÕâ¸öº¯ÊýµÄÓ÷¨£º
row_number()º¯ÊýÒ»°ãÓÃÓÚ×éÄÚÅÅÐò£¬¶øÆäËûÈý¸öº¯ÊýÊǶԽá¹û¼¯ÅÅÐò
Àý×Ó£º·ÖÒ³ÅÅÐò
<!--×¢ÒâÈ«¾Ö±äÁ¿Ò²ÔÚÕâÀïÉùÃ÷£¬²¢ÓöººÅ¸ô¿ª-->
create proc MyDividePageSort @iRowCount int ,@iPageNo int
AS
<!--¾Ö²¿±äÁ¿ÔÚÕâÀïÉùÃ÷,²¢Òª²ÉÓùؼü×Ö-->
declare @iMax int,@strSql nvarchar(100)
<!-²¢ÔÚÕâÀ︳ֵ¸øÏàÓ¦µÄ±äÁ¿£¬ÒòΪÊǾֲ¿±äÁ¿,ËùÒÔ±ØÐ븳ֵ£¬µ«ÊÇÈ«¾Ö±äÁ¿µÄ»°£¬¿ÉÒÔÊÖ¶¯¸³Öµ,Óï¾äÖ®¼ä²»Ó÷ָôºÅ£¬µ«ÊǶÀÁ¢µÄÖ´ÐÐÓï¾ä¾Í±ØÐë²ÉÓÃgo->
set @iMax = @iPageNo * iRowCount
set @strSql = '
select * from (select top('+convert(nvarchar(10),@iRowCount)+' * from 
( select top '+convert(nvarchar(10),@iMax)+' row_number() over(order by id asc) rownumber, * form [pc.pt ]order by id asc ) pcmax order by id desc )pcmin order by id asc    ) '
<!--Ö´ÐÐ-->
exec(@strSql)
go
Õâ¸öÊÇ2000µÄ¹ý³Ì£¬´ÓÖÐÎÒÃDZØÐë¿ÉÒÔÇå³þÁ˽⼸µã:
1¹ûÒ»¸ö±äÁ¿±»ÉêÃ÷Ϊstring(nvarchar()),ÄÇôÈç¹ûÒª¸Ã¿É±äµÄunicode×Ö·û´®ÀïÃæµÄ±äÁ¿³É¹¦±»¸³ÖµµÄ»°¾Í±ØÐëʹÓ㺑++‘
2»¹Òª¸Ä±ä¸Ã±äÁ¿µÄÀàÐÍconvert(nvarchar(10),@iMax),Èç¹ûÕâÀïÖ±½Ó²ÉÓÃ'+@iMax+'»á±¨select top (' ת»»³ÉÊý¾ÝÀàÐÍ int ʱʧ°Ü')
ÕâÀïΪʲôҪÓÃconvert£ºÒòΪÈç¹ûÖ±½ÓÓÃ@IMaxµÄ»°£¬Ï൱ÓÚ½«±äÁ¿@IMaxת»»³ÉÕûÊý£¬ÔÚ³ÌÐòÀïÃæÎÒÃÇ¿ÉÒÔÕâÑùд
select top “+varivant+"* from table;
ÏÂÃæÊÇ2005µÄ·ÖÒ³¶¯×÷
create proc mydividePages @iRowcount  int ,@iPageNo int
AS
select * from (select row_number() over(order by id asc )  row,* from sp ) orderdata where row between @ipageNo * @iRowCoount +1 and (@ipageNo +1) * iRowCount;
ÕâÀïµÄÒâ˼¾ÍÊÇ£º´ÓÖ¸¶¨ÆðʼµÄrow±íÖÐselect³ö½á¹û¼¯À´
ÐèҪעÒâµÄÒ»µã¾ÍÊÇorderdata£¬ÕâÀï±ØÐëÒª±ðÃû£¬ÒòΪsqlÀïÃæÖ»ÓÐÌØÊâµÄº¯Êý²ÅÔÊÐí½«2¸öÖ´ÐÐÓï¾ä·ÅÔÚÒ»Æð£¬±ÈÈçexists£¬ÓбÈÈçin£¬¼ÓÉϱðÃûµÄÒâ˼¾ÍÊÇÏ൱ÓÚÒ»¸öÁÙʱ±í£¬ÕâÀïÓв»µÃ²»ÌáÒ»ÏÂCTE²éѯ
with tempCte
{
    one statement can run off its own bat(independently);
}
next ,we can use the tempCte
ÔÚ×ö·ÖÒ³²âÊÔµÄʱºò£¬ÎÒÓöµ½ÁËÒ»¸öºÜÈÝÒ׺öÂÔ


Ïà¹ØÎĵµ£º

SQL Server 2005ÖеÄT SQLÔöÇ¿C

ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......

SQL Server 2005 ÖÐʹÓÃÕýÔò±í´ïʽƥÅä

CLR Óû§¶¨Ò庯ÊýÖ»ÊÇÔÚ .NET ³ÌÐò¼¯Öж¨ÒåµÄ¾²Ì¬·½·¨¡£CREATE FUNCTION Óï¾äÒÑÀ©Õ¹ÎªÖ§³Ö´´½¨ CLR
Óû§¶¨Ò庯Êý¡£
1¡¢´´½¨Êý¾Ý¿âÏîÄ¿
¡¡¡¡
2¡¢Ìí¼ÓÓû§¶¨Ò庯Êý
¡¡¡¡
ÒÔÏÂÊÇÑÝʾ´úÂ룺
Code
using
 System;
using
 System.Data;
using
 System.Data.SqlClient;
using
 System.Data.Sql ......

SQL Server 2005ÖеÄT SQLÔöÇ¿A

TOP ÔöÇ¿¡£¿ÉÒÔÖ¸¶¨Ò»¸öÊý×Ö±í´ïʽ£¬ÒÔ·µ»ØÒªÍ¨¹ý²éѯӰÏìµÄÐÐÊý»ò°Ù·Ö±È£¬»¹¿ÉÒÔ¸ù¾ÝÇé¿öʹÓñäÁ¿»ò×Ó²éѯ¡£
¿ÉÒÔÔÚDELETE¡¢UPDATEºÍINSERT²éѯÖÐʹÓÃTOPÑ¡Ïî¡£
2¡¢¸üºÃµØÌæ»»SET ROWCOUNTÑ¡Ïʹ֮¸üΪÓÐЧ¡£
OUTPUT
1¡¢SQL Server 2005ÒýÈëÒ»¸öеÄOUTPUT×Ӿ䣬ÒÔʹÄú¿ÉÒÔ³åÐÞ¸ÄÓï¾ä(INSERT¡¢UPDATE¡¢DELETE)ÖÐ ......

SQL SERVER Êý¾Ý¿âÁ´½Ó·þÎñÆ÷×ܽá


SQL SERVER Êý¾Ý¿âÁ´½Ó·þÎñÆ÷×ܽá
ǰ¶Îʱ¼ä£¬¹«Ë¾µÄÏîÄ¿¿ª·¢Óõ½C/S¡¢B/SÁ½Öּܹ¹¡£CS²¿·ÖÒòΪÊý¾ÝµÄ±£ÃÜÐԺͰ²È«ÐÔ£¬²ÉÓÃSQL SERVER 2000£¨ºóÀ´Ëæ×ÅÈí¼þ°æ±¾Éý¼¶£¬²ÉÓÃSQL Server 2005£©¾ÖÓòÍøÂç¡£B/S²¿·Ö²ÉÓÃOracle9.2Êý¾Ý¿â¡£Á½¸ö²¿·ÖÎïÀí¸ôÀ룬¶¨Ê±Í¨¹ýÍøÂçÇл»Æ÷½øÐÐÍøÂçÇл»ÒÔÍê³ÉÊý¾Ý½»»»¡£
    ......

SQL Server 2005ÖеÄT SQLÔöÇ¿D

µÝ¹éµÄͨÓñí±í´ïʽ
µÝ¹éµÄCTEÊǸù¾ÝÖÁÉÙÁ½¸ö²éѯ£¨»òÕß³ÆÎªÁ½¸ö³ÉÔ±£©¹¹½¨µÄ£¬Ò»¸öÊǷǵݹé²éѯ£¬Ò²³ÉΪ¹Ì¶¨³ÉÔ±£¬Ö»Äܵ÷ÓÃÒ»´Î£¬ÁíÍâÒ»¸öÊǵݹé²éѯ£¬Ò²³ÉΪµÝ¹é³ÉÔ±£¨RM£©£¬¿ÉÒÔ·´¸´µ÷Óã¬Ö±µ½²éѯ²»ÔÙ·µ»ØÐС£²éѯÓÉUNION ALLÔËËã·ûÁ¬½ÓΪһ¸öµ¥¶ÀµÄCTE¡£
--ʹÓõݹéµÄͨÓñí±í´ïʽ
GO
CREATE TABLE CarParts
( ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ