‘壹’ sql Server 分页 查询语句
四种方式实现SQLServer 分页查询
SQLServer 的数据分页:
假设现在有这样的一张表:
CREATE TABLE test
(
id int primary key not null identity,
names varchar(20)
)
然后向里面插入大约1000条数据,进行分页测试
假设页数是10,现在要拿出第5页的内容,查询语句如下:
--10代表分页的大小
select top 10 *
from test
where id not in
(
--40是这么计算出来的:10*(5-1)
select top 40 id from test order by id
)
order by id
原理:需要拿出数据库的第5页,就是40-50条记录。首先拿出数据库中的前40条记录的id值,然后再拿出剩余部分的前10条元素
第二种方法:
还是以上面的结果为例,采用另外的一种方法
--数据的意思和上面提及的一样
select top 10 *
from test
where id >
(
select isnull(max(id),0)
from
(
select top 40 id from test order by id
) A
)
order by id
原理:先查询前40条记录,然后获得其最id值,如果id值为null的,那么就返回0
然后查询id值大于前40条记录的最大id值的记录。
这个查询有一个条件,就是id必须是int类型的。
第三种方法:
select top 10 *
from
(
select row_number() over(order by id) as rownumber,* from test
) A
where rownumber > 40
原理:先把表中的所有数据都按照一个rowNumber进行排序,然后查询rownuber大于40的前十条记录
这种方法和oracle中的一种分页方式类似,不过只支持2005版本以上的
第四种:
存储过程查询
创建存储过程
alter procere pageDemo
@pageSize int,
@page int
AS
declare @temp int
set @temp=@pageSize*(@page - 1)
begin
select top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id
end
执行存储过程
exec 10,5
‘贰’ sql数据库分页
楼主,刚刚有个问友和你问的差不多,我刚回答了他的。就直接把刚回答的复制给你看看啦。希望对你有帮助、。
要想分页,首先得做好准备工作。你要先声明每页显示多少条数据,还得获取当前选择的是多少页的页码。有了这两个分页就好办了。
sql如下:select top 10 from tableName
where (id not in(select top 20 from tableName order by Id desc)) order by Id desc
分页需要使用到的一些动态数据如下:
每页显示的数量:自己定义。
总页数:数据总条数/每页显示的条数
当前页码的计算方法:(页码-1)*每页显示的数量。比如我要浏览第3页的数据,3从客户端传送过来后,在后台对页码进行处理:(3-1)*每页显示的数量(假如是10).算出来后的结果就是20.你在把20以参数注入的方式动态添加到上面那个20那里就ok了。
sql中的10表示你每页显示的数据,这里跟10,就代表每页显示10条。(你可以定义一个常量作为每页显示的条数)
where中的20表示不包括前面的20条数据,也就是查询出从第21条到30之间的数据。
不知道我这样说你是否理解,其实只要理解了sql语句,分页就很好做了。
‘叁’ SQL Server数据库用sql语句实现分页查询 (从M条数据开始,查找N条记录。sqlserver数据库。请举例说明。)
1:新建一个数据库
create database 数据库名
2:新建一个表
create table 表名
(
字段名 类型 是否为空
)
3:删除一个表
drop table 表名
4:增加一个记录
insert 表名 [(字段)] values ( 内容 )
5:删除一个记录
delete [from] 表名 where 条件
6、修改一个记录
update 表名 set 字段名=更新内容 where 条件
7、在原表中增加一个字段
alter table 表名 add column 字段名 类型
8:在原表中删除一个字段
alter table 表名 drop column 字段名
9、查询一个表记录
select * from 表名
10、带条件查询一个表记录
select * from 表名 where =条件
‘肆’ 使用sql语句实现分页查询
使用sql语句在语句末尾添加 limit page,count //意思是 获取从page+1开始的count条记录
例如:select * from checkmoney where phonenumber='18209183861' order by check_start_time desc limit 1,5;
这条语句获取了 checkmoney的第 2条至第6条 记录。
‘伍’ SQL分页查询,求高手指点
oracle 的话可以用 rownum
select * from ( 你的语句 ) where rownum <11
select * from ( 你的语句 ) where rownum >10 and rownum < 21
sqlserver的话用 ROW_NUMBER()
‘陆’ 如何用sql语句 实现分页查询
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
‘柒’ 求一个简单的SQL分页语句
1. 查看数据库的版本
select @@version
2. 查看数据库所在机器操作系统参数
exec master..xp_msver
3. 查看数据库启动的参数
sp_configure
4. 查看数据库启动时间
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看数据库服务器名和实例名
print 'Server Name:' + convert(varchar(30),@@SERVERNAME)
print 'Instance:' + convert(varchar(30),@@SERVICENAME)
5. 查看所有数据库名称及大小
sp_helpdb
重命名数据库用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有数据库用户登录信息
sp_helplogins
查看所有数据库用户所属的角色信息
sp_helpsrvrolemember
修复迁移服务器时孤立用户时,可以用的fix_orphan_user脚本或者LoneUser过程
更改某个数据对象的用户属主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意:更改对象名的任一部分都可能破坏脚本和存储过程。
把一台服务器上的数据库用户登录信息备份出来可以用add_login_to_aserver脚本
查看某数据库下,对象级用户权限
sp_helprotect
还有很多,这里给你地址:
http://..com/question/40039261.html?si=1
‘捌’ 怎样实现数据库的分页查询
针对查询语句做处理,同时对请求页面地址做分析
list.aspx?pageid=5 //表示访问第五页
后台语言里,先对查询条件做预处理
pagepre=pagesize*4 //pagesize 用于表示分页大小,例如10,则前4页共有40条记录
查询语句
sqlcmd="select top "+pagesize+" from tabelname where id not in (select top "+pagepre+" from tablename order by id desc)"
操作原理为将当前页前显示的所有记录从数据查询结果中排除,也就是not in 后面的部分,然后从剩余的结果冲,读取pagesize大小的记录值。筛选条件、排序条件放在子查询中
‘玖’ 求教db2中的sql语句,关于分页查询,查询从第
一、查询指定模式下的所有表
db2 LIST TABLES FOR SCHEMA 模式名
二、查询当前模式下所有表及信息
db2 select tabname from syscat.tables where tabschema = CURRENT SCHEMA
三、查询当前模式下所有的表
db2 LIST TABLES FOR ALL
四、查询指定表名的表
db2 select * from syscat.tables where TABNAME = '表名'(表名必须大写,不加模式,原因是TABNAME是syscat.tables中的一个字段,TABSCHEMA模式是另一个字段,两者唯一确定一张表)
希望这些可以给你帮助
‘拾’ java db 的分页sql语句,有谁知道
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class goodsBeanC {
//定义数据库变了
private ResultSet rs=null;
private PreparedStatement ps=null;
private Connection con=null;
private int pageSize = 6; //定义分页大小
private int rowCount = 0; //记录总数
private int pageCount = 0; //得到分页的页数
/**
* @param pageSize 每个分页的页面大小
* @param rowCount 数据库中记录的总数
* @param pageCount 得到可以分页的页数
* @return pageCount 分页的页数
*/
public int getPageCount(){
//得到数据库连接
con=new ConDB().getCon();
try {
//获取数据库中符合条件的记录的总数
ps=con.prepareStatement("select count(*) from goods");
rs=ps.executeQuery();
while(rs.next()){
rowCount=rs.getInt(1);
}
//计算可以分的页数
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=(rowCount/pageSize)+1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.close();
}
return pageCount;
}
/**
*
* @param goodsId 货物编号
* @return gb(goodsBean) 得到封装的货物信息
*/
public goodsBean getGoodsBean(String goodsId){
goodsBean gb=new goodsBean();
try {
con=new ConDB().getCon();
ps=con.prepareStatement("select * from goods where goodsId=?");
ps.setString(1, goodsId);
rs=ps.executeQuery();
while(rs.next()){
gb.setGoodsId(Integer.parseInt(rs.getString(1)));
gb.setGoodsName(rs.getString(2));
gb.setGoodsIntro(rs.getString(3));
gb.setGoodsPrice(rs.getFloat(4));
gb.setGoodsNum(rs.getInt(5));
gb.setPublish(rs.getString(6));
gb.setImages(rs.getString(7));
gb.setType(rs.getString(8));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.close();
}
return gb;
}
/**
*
* @param pageNow 当前页数
* @return ArrayList 返回的数据库中的记录存放在al中
*/
public ArrayList getPageNow(int pageNow){
ArrayList al=new ArrayList();
con=new ConDB().getCon();
try {
ps=con.prepareStatement
("select top " + pageSize
+ " * from goods where goodsId not in(select top "
+ pageSize * (pageNow - 1) + " goodsId from goods)"); //分页的sql语句
rs=ps.executeQuery();
while(rs.next()){
//将每条结果的每个属性封装到gb中
goodsBean gb=new goodsBean();
gb.setGoodsId(Integer.parseInt(rs.getString(1)));
gb.setGoodsName(rs.getString(2));
gb.setGoodsIntro(rs.getString(3));
gb.setGoodsPrice(rs.getFloat(4));
gb.setGoodsNum(rs.getInt(5));
gb.setPublish(rs.getString(6));
gb.setImages(rs.getString(7));
gb.setType(rs.getString(8));
//将gb封装到ArrayList中
al.add(gb);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.close();
}
return al;
}
/**
* 关闭数据库连接
*/
public void close() {
try {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (con != null)
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}