常用数据库的分页语句(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行开始返回数据。

相关推荐
黑臂麒麟7 分钟前
HarmonyOS鸿蒙实战应用6:随手账本——Preferences本地持久化
数据库·华为·app·鸿蒙
2601_9621741729 分钟前
小试牛刀-SpringBoot集成SOL链
数据库·spring boot·后端
如何取名31 分钟前
结合实际业务进行LRU淘汰算法优化设计(数据库开发日志)
数据库·算法
HanhahnaH34 分钟前
Outbox 投递器:事务性发件箱模式详解
数据库
新时代牛马43 分钟前
epoll 源码路径:从epoll_ctl 到ep_poll 的就绪唤醒
网络·数据库·网络协议
小蒜学长1 小时前
基于SpringBoot + Vue的智能健身房管理系统的设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端
芦柑4641 小时前
画布和3D导演台工具:短剧分镜从素材整理到空间预演的完整链路
服务器·前端·数据库
南城以南溫暖如初1471 小时前
AI 智能商城 APP 定制开发的核心需求
java·人工智能·spring boot·mysql·mybatis·需求分析
专注仿真1 小时前
TRAE Work 的实战
数据库·人工智能·分析
ACP广源盛139246256731 小时前
端侧 AI 硬件架构实践@ACP#中端边缘整机 PCIe 扩展与 IX7012 器件分析
大数据·数据库·人工智能·嵌入式硬件·开源·硬件架构