news 2026/6/10 13:34:15

SQL SELECT TOP, LIMIT, ROWNUM 子句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL SELECT TOP, LIMIT, ROWNUM 子句

SQL SELECT TOP, LIMIT, ROWNUM 子句


SQL SELECT TOP 子句

SELECT TOP 语句用于在 SQL 中限制返回的结果集中的行数, 它通常用于只需要查询前几行数据的情况,尤其在数据集非常大时,可以显著提高查询性能。

SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。

说明:

  • SELECT TOP在 SQL Server 和 MS Access 中使用,而在 MySQL 和 PostgreSQL 中使用LIMIT关键字。
  • Oracle 在 12c 版本之前没有直接等效的关键字,可以通过ROWNUM实现类似功能,但在 12c 及以上版本中引入了FETCH FIRST
  • 当使用TOPLIMIT时,最好结合ORDER BY子句,以确保返回的行是特定顺序的前几行。

SQL Server / MS Access 语法

SELECT TOP number|percent column1, column2, ... FROM table_name;

number|percent:指定返回的行数或百分比。

  • number:具体的行数。
  • percent:数据集的百分比。

MySQL 语法

SELECT column1, column2, ... FROM table_name LIMIT number;

Oracle 语法

SELECT column1, column2, ... FROM table_name FETCH FIRST number ROWS ONLY;

PostgreSQL 语法

SELECT column1, column2, ... FROM table_name LIMIT number;

实例

假设我们有一个名为 Employees 的表,其中包含以下数据:

EmployeeIDEmployeeNameSalary
1John Smith50000
2Maria Garcia60000
3Liam Johnson70000
4Emma Wilson80000
5Oliver Brown90000

SQL Server 和 MS Access 返回前 3 行数据:

SELECT TOP 3 EmployeeName, Salary FROM Employees;

返回前 10% 的数据:

SELECT TOP 10 PERCENT EmployeeName, Salary FROM Employees;

MySQL 返回前 3 行数据:

SELECT EmployeeName, Salary FROM Employees LIMIT 3;

PostgreSQL 返回前 3 行数据:

SELECT EmployeeName, Salary FROM Employees LIMIT 3;

Oracle 返回前 3 行数据:

SELECT EmployeeName, Salary FROM Employees FETCH FIRST 3 ROWS ONLY;

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+

MySQL SELECT LIMIT 实例

下面的 SQL 语句从 "Websites" 表中选取头两条记录:

实例

SELECT * FROM Websites LIMIT 2;

执行以上 SQL,数据如下所示:

vk.com/topic-234777923_54531860
vk.com/topic-234777846_54602244
vk.com/topic-234766022_54902544
vk.com/topic-234777924_54241464
vk.com/topic-234252226_54602243
vk.com/topic-234762548_54732708
vk.com/topic-234756700_55335763
vk.com/topic-234777584_54241463
vk.com/topic-234777928_54732707
vk.com/topic-234777908_54732706
vk.com/topic-234756911_55830487
vk.com/topic-234466620_55335762
vk.com/topic-234777957_55566538
vk.com/topic-234777876_54602242
vk.com/topic-234777886_54602241
vk.com/topic-234777901_55830486
vk.com/topic-234777913_54531859
vk.com/topic-234777903_54531858
vk.com/topic-234777875_54124700
vk.com/topic-234756933_54531857
vk.com/topic-234777887_55566537
vk.com/topic-234777923_54531856
vk.com/topic-234777924_54241462
vk.com/topic-234252226_54602240
vk.com/topic-234756700_55335759
vk.com/topic-234777584_54241461
vk.com/topic-234756911_55830485
vk.com/topic-234777886_54602239
vk.com/topic-234777901_55830484
vk.com/topic-234777927_55566536
vk.com/topic-234466620_55335760
vk.com/topic-234777957_55566535
vk.com/topic-234777875_54124699
vk.com/topic-234466708_54732704
vk.com/topic-234466423_54531854
vk.com/topic-234250764_54241460
vk.com/topic-234756933_54531853
vk.com/topic-234777843_54531852
vk.com/topic-234777952_54902543
vk.com/topic-234777923_54531851
vk.com/topic-234761493_54531850
vk.com/topic-234777924_54241459
vk.com/topic-234761470_55335758
vk.com/topic-234777905_54124697
vk.com/topic-234777584_54241458
vk.com/topic-234777876_54602238
vk.com/topic-234756911_55830482
vk.com/topic-234777888_54732702
vk.com/topic-234777927_55566533
vk.com/topic-234466708_54732701
vk.com/topic-234466423_54531849
vk.com/topic-234466620_55335757
vk.com/topic-234762356_54602237
vk.com/topic-234250764_54241457
vk.com/topic-234777912_54902541
vk.com/topic-234777937_55566532
vk.com/topic-234777843_54531848
vk.com/topic-234777952_54902540
vk.com/topic-234761493_54531847
vk.com/topic-234777924_54241456
vk.com/topic-234761472_54902539
vk.com/topic-234761470_55335756
vk.com/topic-234251298_54732699
vk.com/topic-234777905_54124696
vk.com/topic-234777584_54241455
vk.com/topic-234777876_54602236
vk.com/topic-234777901_55830481
vk.com/topic-234756911_55830480
vk.com/topic-234777927_55566530
vk.com/topic-234777888_54732698
vk.com/topic-234466423_54531846
vk.com/topic-234762356_54602235
vk.com/topic-234777937_55566529
vk.com/topic-234777912_54902538
vk.com/topic-234250764_54241454
vk.com/topic-234466620_55335755
vk.com/topic-234777843_54531845
vk.com/topic-234777952_54902537
vk.com/topic-234466708_54732697
vk.com/topic-234761472_54902536
vk.com/topic-234761470_55335754
vk.com/topic-234761493_54531844
vk.com/topic-234777877_55566528
vk.com/topic-234777913_54531843
vk.com/topic-234251298_54732696
vk.com/topic-234766256_54602234
vk.com/topic-234777905_54124695
vk.com/topic-234777925_54124694
vk.com/topic-234777907_55566527
vk.com/topic-234777971_55830479
vk.com/topic-234756911_55830478
vk.com/topic-234762356_54602233
vk.com/topic-234250764_54241453
vk.com/topic-234777912_54902535
vk.com/topic-234777937_55566526
vk.com/topic-234777952_54902534
vk.com/topic-234777843_54531842
vk.com/topic-234766022_54902533
vk.com/topic-234466708_54732695
vk.com/topic-234777891_55830477
vk.com/topic-234761472_54902532
vk.com/topic-234761493_54531841
vk.com/topic-234777877_55566525
vk.com/topic-234777913_54531840
vk.com/topic-234251298_54732694
vk.com/topic-234762548_54732693
vk.com/topic-234766256_54602232
vk.com/topic-234777905_54124692
vk.com/topic-234777925_54124691
vk.com/topic-234777907_55566524
vk.com/topic-234777971_55830476
vk.com/topic-234777897_55566523
vk.com/topic-234777901_55830475
vk.com/topic-234777908_54732692
vk.com/topic-234777787_55566522
vk.com/topic-234762356_54602231
vk.com/topic-234777846_54602230
vk.com/topic-234250764_54241451
vk.com/topic-234777937_55566521
vk.com/topic-234777912_54902530
vk.com/topic-234777952_54902529
vk.com/topic-234777843_54531837
vk.com/topic-234466708_54732691
vk.com/topic-234777891_55830473
vk.com/topic-234766022_54902528
vk.com/topic-234761472_54902527
vk.com/topic-234777877_55566520
vk.com/topic-234761493_54531834
vk.com/topic-234777928_54732690
vk.com/topic-234777913_54531836
vk.com/topic-234466429_54979489
vk.com/topic-234251298_54732689
vk.com/topic-234766256_54602229
vk.com/topic-234756700_55335751
vk.com/topic-234762548_54732688
vk.com/topic-234777925_54124690
vk.com/topic-234777883_54531833
vk.com/topic-234777907_55566519
vk.com/topic-234777876_54602228
vk.com/topic-234777905_54124689
vk.com/topic-234777971_55830472
vk.com/topic-234777897_55566517
vk.com/topic-234777901_55830471
vk.com/topic-234777957_55566516
vk.com/topic-234777908_54732687
vk.com/topic-234777875_54124688
vk.com/topic-234777787_55566515
vk.com/topic-234777886_54602227
vk.com/topic-234777887_55566514
vk.com/topic-234762356_54602226
vk.com/topic-234777846_54602225
vk.com/topic-234777937_55566513
vk.com/topic-234777912_54902525
vk.com/topic-234777952_54902524
vk.com/topic-234252226_54602224
vk.com/topic-234777891_55830470
vk.com/topic-234777903_54531832
vk.com/topic-234766022_54902523
vk.com/topic-234761472_54902522
vk.com/topic-234777927_55566512
vk.com/topic-234777923_54531831
vk.com/topic-234762422_54902521
vk.com/topic-234756933_54531830
vk.com/topic-234777877_55566511
vk.com/topic-234777928_54732686
vk.com/topic-234466429_54979488
vk.com/topic-234762548_54732685
vk.com/topic-234766256_54602223
vk.com/topic-234756700_55335750
vk.com/topic-234251298_54732684
vk.com/topic-234777925_54124687
vk.com/topic-234777883_54531829
vk.com/topic-234777907_55566510
vk.com/topic-234777876_54602222
vk.com/topic-234777971_55830469
vk.com/topic-234777897_55566509
vk.com/topic-234777957_55566508
vk.com/topic-234777908_54732683
vk.com/topic-234777875_54124686
vk.com/topic-234777787_55566507
vk.com/topic-234777886_54602221
vk.com/topic-234777887_55566506
vk.com/topic-234777846_54602220
vk.com/topic-234777952_54902520
vk.com/topic-234777937_55566505
vk.com/topic-234252226_54602219
vk.com/topic-234466708_54732682
vk.com/topic-234777891_55830468
vk.com/topic-234777903_54531828
vk.com/topic-234766022_54902519
vk.com/topic-234777927_55566504
vk.com/topic-234777923_54531827
vk.com/topic-234777877_55566502
vk.com/topic-234756933_54531826
vk.com/topic-234777928_54732681
vk.com/topic-234466429_54979487
vk.com/topic-234762548_54732680
vk.com/topic-234756700_55335749
vk.com/topic-234766256_54602218


SQL SELECT TOP PERCENT 实例

在 Microsoft SQL Server 中还可以使用百分比作为参数。

下面的 SQL 语句从 websites 表中选取前面百分之 50 的记录:

实例

以下操作在 Microsoft SQL Server 数据库中可执行。

SELECT TOP 50 PERCENT * FROM Websites;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:24:29

2024《A Rapid Review of Clustering Algorithms》

一、研究动机与核心贡献 聚类作为无监督学习的核心任务,在数据挖掘、图像处理、生物信息学、推荐系统、网络安全等众多领域具有广泛应用。然而,尚无一种“通用最优”的聚类算法——不同算法在不同数据结构(如高维、大规模、非凸、含噪&#x…

作者头像 李华
网站建设 2026/6/10 17:37:22

LangFlow事件抽取与时间线生成应用

LangFlow事件抽取与时间线生成应用 在企业日常运营中,会议纪要、客服日志、项目报告等非结构化文本每天都在不断积累。这些文档里藏着大量关键信息——谁在什么时候做了什么?产品故障何时首次出现?客户投诉有没有重复发生?但人工翻…

作者头像 李华
网站建设 2026/6/10 17:46:46

LangFlow家谱信息自动归类系统原型

LangFlow家谱信息自动归类系统原型 在处理大量非结构化文本时,如何高效提取并组织关键信息一直是自然语言处理中的核心挑战。尤其是在家谱、族谱这类涉及复杂人物关系的场景中,传统方法往往依赖人工梳理或基于规则的正则匹配,不仅耗时费力&am…

作者头像 李华
网站建设 2026/6/10 16:18:36

零基础入门LVGL图形界面开发教程(家居应用)

从零开始打造智能家居面板:LVGL图形界面实战入门 你有没有想过,家里的空调温控器、智能开关面板甚至洗衣机显示屏,背后其实都藏着一个“微型操作系统”在默默工作?它们不需要Windows或Android那样的庞大系统,却能实现…

作者头像 李华
网站建设 2026/6/10 15:41:46

Rust 类型转换语法大全(deepseek)

Rust 类型转换语法大全 Rust 提供了多种类型转换机制,以下是详细的分类和语法: 1. 隐式转换 (类型强制转换, Coercions) Rust 只在特定情况下进行隐式类型转换: // 解引用强制多态 (Deref Coercion) let s: &str &String::from(&quo…

作者头像 李华
网站建设 2026/6/10 17:44:07

LangFlow法律文书辅助撰写系统设计思路

LangFlow法律文书辅助撰写系统设计思路 在律师事务所的日常工作中,一份标准的民事起诉状往往需要数小时才能完成:从整理案情摘要、检索相关法条、比对类似判例,到逐项填写诉讼请求和事实理由。即便经验丰富的律师也难免因格式疏漏或引用过时法…

作者头像 李华