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

相关推荐
明月看潮生30 分钟前
青少年编程与数学 01-011 系统软件简介 13 Microsoft SQL Server数据库
数据库·microsoft·青少年编程·系统软件
LUCIAZZZ42 分钟前
项目拓展-Jol分析本地对象or缓存的内存占用
java·开发语言·jvm·数据库·缓存·springboot
寒山李白1 小时前
MySQL分库分表面试题深度解析
数据库·mysql·面试题
入眼皆含月1 小时前
docker安装mysql数据库及简单使用
数据库·mysql·docker
冷崖1 小时前
Redis事务与驱动的学习(一)
数据库·redis·学习
羊小猪~~2 小时前
数据库学习笔记(十六)--控住流程与游标
数据库·笔记·学习
ikun·3 小时前
MongoDB 数据库应用
数据库·mongodb
远方16095 小时前
33-Oracle Parallel 并行处理的选择和实践
数据库·oracle
唐人街都是苦瓜脸5 小时前
学习Oracle------Oracle和mysql在SQL 语句上的的异同 (及Oracle在写SQL 语句时的注意事项)
sql·mysql·oracle
Dnui_King5 小时前
OceanBase (DBA)一面面经
数据库·oceanbase·dba