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
ÔÚ×ö·ÖÒ³²âÊÔµÄʱºò£¬ÎÒÓöµ½ÁËÒ»¸öºÜÈÝÒ׺öÂÔ
Ïà¹ØÎĵµ£º
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......
1¡£select * from a where a.rowid=(select min(b.rowid) from b where a.id=b.id);
create test1(
nflowid number primary key,
ndocid number,
drecvdate date);
insert into test1 values (1, 12301, sysdate) ;
insert into test1 values (2, 12301, sysdate);
select * from test1 order by drecvdate:
......
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CR ......
¿âλ »õÎï±àºÅ ¿â´æÊý
1 0101 50
1 0102 60
1 0103 50
2 0101 90
2 0103 100
2 0111 30
3 0101 12 ......
sql server 2008 bcp ÅúÁ¿¸´ÖƳÌÐò ³ö´í
C:\Documents and Settings>bcp MSPetShop4.dbo.product out c:\1.txt -T
SQLState = 08001, NativeError = -1
Error = [Microsoft][SQL Native Client]SQL ÍøÂç½Ó¿Ú: ¶¨Î»Ö¸¶¨µÄ Server/Instance
ʱ³ö´í [xFFFFFFFF].
SQLState = HYT00, NativeError = 0
Error = [Micros ......