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

三中SQL 分页方法效率分析

三种SQL分页法效率分析
表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
 语句形式:利用Not In和SELECT TOP分页) 效率中,需要拼接SQL语句
  SELECT TOP 10 * from  TestTable WHERE (Id  NOT  IN (SELECT  TOP  20    id  from        TestTable ORDER BY id )) ORDER BY ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
  语句形式:利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
  SELECT TOP 10 * from  TestTable WHERE (ID  > (SELECT    MAX(id)    from (SELECT  TOP    20  id from    TestTable ORDER BY id) AST))
3.分页方案三:(利用SQL的游标存储过程分页)
语句形式:利用SQL的游标存储过程分页) 效率最差,但是最为通用
  create procedure SqlPager
@sqlstr nvarchar(4000),                --查询字符串
@currentpage int,                      --第N页
@pagesize int                        --每页行数
as
set nocount on
declare @P1 int,                      --P1是游标的id
  @rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(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


相关文档:

SQL Char 、VarChar和NVarChar的区别

char、varchar、text和nchar、nvarchar、ntext  
     
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定
的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变 ......

SQL 用exists代替全称量词

学习sql的必经问题。
学生表student (id学号     Sname姓名       Sdept所在系)  
课程表Course           (crscode课程号       name课程名)  
学生选课表transcript           (studid学号 &nbs ......

SQL 查询“仅仅”至少“全部”的问题

“全部的问题”在上一篇中已经写过一点了。
“仅仅”
:这个问题可以使用多表连接来处理。例如:查询仅仅选修了课程A和课程B的学生的信息,sql如下:
其中表student定义了学生的信息。transcript定义了学生的选课情况。crscode字段表示课程代码。
select s.id
from student s,transcript t1,transc ......

sql中常用函数,省得老查别人的

1
:
replace
函数
第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么
select

replace
(
'
lihan
'
,
'
a
'
,
'
b
'
)

--
---------------------------
lihbn
(所影响的行数为
1
行)
==== ......

sql列相加合并 心雨之家

--1. 创建表,添加测试数据
CREATE TABLE tb(id int, [value] varchar(10))
INSERT tb SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
--SELECT * from tb
/**//*
id value
----------- ----------
1 aa
1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号