当前位置:首页 » 编程语言 » 分页查询的sql语句

分页查询的sql语句

发布时间: 2022-01-14 09:15:32

㈠ Access数据库分页查询,效率sql语句

in的效率太低,不能利用索引,建议使用:
select top 每页数量 * from 表 where id >(select top 1 max(id) from (select top (页数-1)*每页数量 from 表 order by id,name)) 或
select top 每页数量 * from 表 where id <(此处根据顺序和逆序)

㈡ 在oracle数据库中的分页SQL语句怎么写

前提:

分页参数:size = 20 page = 2;

没有order by的查询;

嵌套子查询,两次筛选(推荐使用)。

SQL语句:

SELECT *

FROM (SELECT ROWNUM AS rowno, t.*

FROM DONORINFO t

WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd')

AND TO_DATE ('20060731', 'yyyymmdd')

AND ROWNUM <= 20*2) table_alias

WHERE table_alias.rowno > 20*(2-1);

(2)分页查询的sql语句扩展阅读:

rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有不满足条件的记录。

可以这样理解:rownum是一个序列,是Oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2。

依次类推:当使用“>、>=、=、between...and”这些条件时,从缓冲区或数据文件中得到的第一条记录的rownum为1,不符合sql语句的条件,会被删除,接着取下条。下条的rownum还会是1,又被删除,依次类推,便没有了数据。

㈢ 一个分页的SQL语句问题

假设:
pagecount=30 --每页显示的记录数

Currentpage=3 --当前页码

select top 30 ID,Title from books
where Publisheris =(....)
and id not in (select top 30*(3-1) id from books where Publisherid =(...) order by id)
order by id

(...) 跟你那个一样,就不写了,两处都是一样的

你的错误是在id not in中没有加那个(...)的条件

㈣ sql 语句 分页查询

方法1:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id

方法2:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id >
(
SELECT ISNULL(MAX(id),0)
FROM
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
) A
)
ORDER BY id

方法3:
适用于 SQL Server 2005

SELECT TOP 页大小 *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
) A
WHERE RowNumber > 页大小*(页数-1)
这样可以么?

㈤ 关于分页查询的sql语句

这里的K不仅仅是个别名的作用,他把 (select *,row_number() over(order BY UserID) rowIndex from userinfo)做为一个表来查询 ,如果不加则作为一个查询结果集,SQL无法再查询结果集上在进行查询

㈥ 一条sql语句实现分页查询,且能返回记录总数

select *,(select count(*) from t1) from(
select top 2 * from(
select top 4 * from(
select * from t1
)as ttb0 order by id
)as ttb1 order by id desc
)as ttb2 order by id
在select后加个子查询就OK了,

㈦ 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

java中数据库中实现分页的sql语句要求每页十条要查询的是第二页

1、首先preparedstatement是statement的子接口,属于预处理操作,与直接使用statement不同的是,preparedstatement在操作的时候,先在数据表中准备好了一条sql语句,但是sql语句的值暂时不设置,而是之后设置。

㈨ 如何用sql语句 实现分页查询

适用于 SQL Server 2000/2005

SELECT TOP 页大小 *

FROM table1

WHERE id NOT IN

SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id

㈩ sql分页查询语句 首页,上一页怎么实现

--假如每页显示条数据10条

--哪么第一页1~10 第二页11~20 即起始行数=10*(页数-1)+1,结束行=页数*10

declare@startint
declare@endint
set@start=8
set@end=18
select*from(
selectP_ID,P_ClassName,ROW_NUMBER()OVER(orderbyP_ID)asrowfrom
dbo.AD_Position)asa
whererowbetween@startand@end

--太酷了,这样一个分页就搞定了。还可以这样变化,可选参数只是[页的大小]

declare@pagesizeint
declare@startint
declare@endint
declare@pagecountint
set@pagecount=2
set@pagesize=10

set@start=(@pagesize*(@pagecount-1)+1)
set@end=@pagecount*@pagesize

select*from(
selectP_ID,P_ClassName,ROW_NUMBER()OVER(orderbyP_ID)asrowfrom
dbo.AD_Position)asa
whererowbetween@startand@end

这是前几年的一个博文摘录,希望对你用!

热点内容
存储上市龙头 发布:2024-11-15 14:52:14 浏览:37
我的世界服务器怎么重置教学 发布:2024-11-15 14:52:13 浏览:122
C语言tf 发布:2024-11-15 14:36:22 浏览:810
违反密码法是什么意思 发布:2024-11-15 14:36:20 浏览:920
androidmp3录音 发布:2024-11-15 14:32:50 浏览:493
英朗自动挡哪个配置最好 发布:2024-11-15 14:27:44 浏览:253
编译原理断言有哪几种 发布:2024-11-15 14:25:29 浏览:200
数据库数据重复 发布:2024-11-15 14:23:17 浏览:781
安卓端开发用什么IDE 发布:2024-11-15 14:13:51 浏览:554
阿里云查看访问ip 发布:2024-11-15 14:08:58 浏览:544