当前位置:首页>开发>正文

oracle分页查询语句怎么写每页查询10条 SQL Server 分页 查询语句

2023-05-27 06:07:27 互联网 未知 开发

 oracle分页查询语句怎么写每页查询10条 SQL Server 分页 查询语句

oracle分页查询语句怎么写每页查询10条

(rownum):
select * from
(select a.*,rownum row_num from
(select * from mytable t order by t.id desc) a
) b
where b.row_num between 1 and 或者(row_number()):

select tname,tabtype from (
select tname,tabtype,row_number() over ( order by tname ) rn from tab
) where rn between 1 and 更多 mysql 、sqlserver 相关 分页请百度搜索:软皇

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 procedure 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

数据库分页查询语句怎么写?

select top 页大小 *
from table1
where id>
(select max (id) from
(select top ((页码-1)*页大小) id from table1 order by id) as T
)
order by id

SQL语句分条件查询


where 另约时间 is Not null
and PK_CORP=#LoginCorp#
and 另约时间 between #ksrq# and #jzrq#
and (实际完成日期=#wcrq# or #wcrq# is null)
这个语句的写法取决于你是oracle数据库还是sql server数据库及字段类型
oracle 字符型
trim(#wcrq# ) is null
oracle及sql server数字型
#wcrq# = 0 --0为空的默认值
sql server 空值
#wcrq# =

数据库分页查询语句

有个公式
$pageSIze=$_GET[pageSize]
$page = $_GET[page]

"select * from t limit {$pageSize * ($page-1)},{$pageSize}"
意思就是说算下我要取多少条,从哪一条开始算起
$pageSize * ($page-1) 这个是从哪一条开始取
---------------------------------------------------------------- limit 开始的位置, 多少条
limit是按照条数算的,不是ID算的

oracle中查询一个表的所有字段名以及属性的sql语句应该怎么写?

SELECT * FROM all_tab_columns t WHERE t.OWNER=OWNER_NAME AND t.TABLE_NAME=TABLE_NAME
或者

SELECT * FROM user_tab_columns t WHERE t.TABLE_NAME=TABLE_NAME

最新文章

随便看看