常用数据库的分页语句(mySlq、oracle、PostgreSQL、SQL Server)

目录

ORACLE

MySQL

PostgreSQL

[SQL Server](#SQL Server)


ORACLE

sql 复制代码
SELECT * FROM (
  SELECT t.*, ROWNUM AS rn
  FROM (SELECT * FROM 表名 ORDER BY 排序字段) t
  WHERE ROWNUM <= 结束行数
)
WHERE rn >= 开始行数;

其中,表名是你要查询的表名,排序字段是你希望按照哪个字段进行排序,开始行数和结束行数分别表示你希望查询的结果的起始行和结束行。

请注意,Oracle中的ROWNUM是一个伪列,它在查询结果返回之前进行计算。因此,在使用ROWNUM进行分页查询时,需要先进行排序,然后再使用ROWNUM进行筛选。

MySQL

sql 复制代码
SELECT * FROM 表名
LIMIT 开始行数, 每页行数;

其中,表名是你要查询的表名,开始行数表示你希望查询结果的起始行,每页行数表示每页显示的行数。

例如,如果你希望查询表名为"students"的数据,从第10行开始,每页显示5行,可以使用以下语句:

sql 复制代码
SELECT * FROM students
LIMIT 10, 5;

这将返回从第10行开始的5行数据。

请注意,MySQL中的LIMIT语句中的行数是从0开始计数的,而不是从1开始计数的。因此,LIMIT 10, 5 表示从第11行开始,返回5行数据。

PostgreSQL

sql 复制代码
SELECT * FROM 表名
LIMIT 每页行数
OFFSET 开始行数;

其中,表名是你要查询的表名,每页行数表示每页显示的行数,开始行数表示你希望查询结果的起始行。

例如,如果你希望查询表名为"students"的数据,从第10行开始,每页显示5行,可以使用以下语句:

sql 复制代码
SELECT * FROM students
LIMIT 5
OFFSET 10;

这将返回从第10行开始的5行数据。

请注意,OFFSET关键字表示从结果集的起始位置偏移多少行。在上述示例中,OFFSET 10 表示从结果集的第11行开始返回数据。

SQL Server

sql 复制代码
SELECT * FROM 表名
ORDER BY 排序字段
OFFSET 开始行数 ROWS
FETCH NEXT 每页行数 ROWS ONLY;

其中,表名是你要查询的表名,排序字段是你希望按照哪个字段进行排序,开始行数表示你希望查询结果的起始行,每页行数表示每页显示的行数。

例如,如果你希望查询表名为"students"的数据,从第10行开始,每页显示5行,可以使用以下语句:

sql 复制代码
SELECT * FROM students
ORDER BY 排序字段
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;

这将返回从第10行开始的5行数据。

请注意,OFFSET FETCH语句中的行数是从0开始计数的,而不是从1开始计数的。因此,OFFSET 10 ROWS表示从结果集的第11行开始返回数据。

相关推荐
东阳马生架构3 小时前
MySQL底层概述—1.InnoDB内存结构
java·数据库·mysql
standxy3 小时前
通过轻易云平台实现聚水潭数据高效集成到MySQL的技术方案
android·数据库·mysql
itwangyang5203 小时前
2025 - 科研神器 - 批量处理 PDF、SVG、PNG 和 JPG 文件,将它们转换为彩色 TIFF 文件,并保存到指定的 tiff 文件夹中
数据库·pdf
痞老板A小安装C44 小时前
redis的大key和热key问题解决方案
数据库·redis·bootstrap
feilieren4 小时前
DataGrip 连接 Redis、TongRDS
数据库·redis·缓存
苹果酱05674 小时前
windows安装redis, 修改自启动的redis服务的密码
java·开发语言·spring boot·mysql·中间件
液态不合群4 小时前
Redis中常见的数据类型及其应用场景
数据库·redis·wpf
Allen Bright4 小时前
Jedis存储一个-以String的形式的对象到Redis
数据库·redis·缓存
儿时可乖了4 小时前
Linux 定时任务全解析
linux·oracle
Allen Bright5 小时前
Jedis存储一个以byte[]的形式的对象到Redis
数据库·redis·缓存