易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server分页3种方案比拼

建立表:
CREATE TABLE [TestTable] (
 [ID] [int] IDENTITY (1, 1) NOT NULL ,
 [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
 
插入数据:(2万条,用更多的数据测试会明显一些)
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=20000
begin
    insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
    set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF
 
-------------------------------------
分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
from TestTable
WHERE (ID NOT IN
          (SELECT TOP 20 id
         from TestTable
         ORDER BY id))
ORDER BY ID
SELECT TOP 页大小 *
from TestTable
WHERE (ID NOT IN
          (SELECT TOP 页大小*页数 id
         from 表
         ORDER BY id))
ORDER BY ID
-------------------------------------
分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
from TestTable
WHERE (ID >
          (SELECT MAX(id)
         from (SELECT TOP 20 id
                 from TestTable
                 ORDER BY id) AS T))
ORDER BY ID
SELECT TOP 页大小 *
from TestTable
WHERE (ID >
      


相关文档:

SQL SERVER 2005过程分页

AspNetPager是一个比较好的分页控件,该控件使用过程分页十分方便,过程如下:
Create PROCEDURE [dbo].[pt_AspNetPager]
(
@tableName varchar(255), -- 表名
@fieldName varchar(400)= '*', -- 字段名
@strWhere varchar(255) = Null,
@fieldOrder varchar(100), --不能为空
@startIndex int ......

万能的分页sql(转)

CREATE proc page
@RecordCount int output,
@QueryStr nvarchar(100)='table1',--表名、视图名、查询语句
@PageSize int=20, --每页的大小(行数)
@PageCurrent int=2, --要显示的页 从0开始
@FdShow nvarchar (1000)='*', --要显示的字段列表
@IdentityStr nvarchar (100)='id', --主键
@WhereStr nvarchar ......

SQL递归查询数据

Tree表如下:  
    NodeId   ParentId     NodeName  
    0           -1              &nb ......

SQL 面试题一

1.用一条Sql语句查询出每门功课都大于80分的学生姓名 
Name
Class
Result
张三
语文
56
张三
数学
88
李四
语文
92
李四
数学
100
王五
语文
88
王五
数学
99
王五
英语
99
-------------------------------------------------------------------------------
答案:
SELECT DISTINCT nam ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号