sql 代码 1. ID char(6) --学号 2. name VARCHAR2(10) --姓名 3. createtable student (ID char(6), name VARCHAR2(100)); 4. insertinto sale values('200001',‘张一’); 5. insertinto sale values('200002',‘王二’); 6. insertinto sale values('200003',‘李三’); 7. nsert into sale values('200004',‘赵四’); 8. commit;
sql 代码 1. SQL>select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标) 2. SQL>select rownum,id,name from student where rownum=1; 3. ROWNUM ID NAME 4. ---------- ------ --------------------------------------------------- 5. 1200001 张一 6. SQL>select rownum,id,name from student where rownum =2; 7. ROWNUM ID NAME 8. ---------- ------ ---------------------------------------------------
sql 代码 1. SQL>select rownum,id,name from student where rownum >2; 2. ROWNUM ID NAME 3. ---------- ------ ---------------------------------------------------
sql 代码 1. SQL>select*from(select rownum no ,id,name from student) where no>2; 2. NO ID NAME 3. ---------- ------ --------------------------------------------------- 4. 3200003 李三 5. 4200004 赵四 6. SQL>select*from(select rownum,id,name from student)where rownum>2; 7. ROWNUM ID NAME 8. ---------- ------ ---------------------------------------------------
sql 代码 1. SQL>select*from (select rownum no,id,name from student where rownum<=3 ) where no >=2; 2. NO ID NAME 3. ---------- ------ --------------------------------------------------- 4. 2200002 王二 5. 3200003 李三
SETIDENTITY_INSERT TestTable ON declare@iint set@i=1 while@i<=20000 begin insertinto TestTable([id], FirstName, LastName, Country,Note) values(@i, ''FirstName_XXX'',''LastName_XXX'',''Country_XXX'',''Note_XXX'') set@i=@i+1 end SETIDENTITY_INSERT TestTable OFF
分页方案一:(利用Not In和SELECT TOP分页)
语句形式: SELECTTOP10*FROM TestTable WHERE ( ID NOTIN (SELECTTOP20 id FROM TestTable ORDERBY id)) ORDERBY ID SELECTTOP 页大小 *FROM TestTable WHERE (ID NOTIN (SELECTTOP 页大小*页数 id FROM 表 ORDERBY id)) ORDERBY ID
分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式: SELECTTOP10*FROM TestTable WHERE (ID > (SELECTMAX(id) FROM (SELECTTOP20 id FROM TestTable ORDERBY id) AS T)) ORDERBY ID SELECTTOP 页大小 *FROM TestTable WHERE (ID > (SELECTMAX(id) FROM (SELECTTOP 页大小*页数 id FROM 表 ORDERBY id) AS T)) ORDERBY ID
分页方案三:(利用SQL的游标存储过程分页)
createprocedure XiaoZhengGe @sqlstrnvarchar(4000), --查询字符串 @currentpageint, --第N页 @pagesizeint--每页行数 as set nocount on declare@P1int, --P1是游标的id @rowcountint exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output selectceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 set@currentpage=(@currentpage-1)*@pagesize+1 exec sp_cursorfetch @P1,16,@currentpage,@pagesize exec sp_cursorclose @P1 set nocount off