20. SQL--top子句:限制返回数据的条数
1 .前言
sql top 子句用于限定要返回的记录的数据,可以是一个具体的数字,也可以是一个百分数。
对于拥有成千上万条记录的大型数据表来说,top 子句非常有用,它能够压缩结果集的大小,提高程序查询效率。
注意,并不是所有的数据库都支持 top 子句,有些数据库使用其它的等价语句来替代,例如:
- mysql 使用 limit 子句获取指定数量的记录;
- oracle 使用 rownum 子句获取指定数量的记录。
2 .语法
select 语句中的 top 子句的基本语法如下:
select top number|percent column_name(s)
from table_name
where [condition]
3. 示例
现在有包含如下记录的 website 表:
+----+----------------+----------------------------+-----+-------+---------+---------+ | id | name | url | age | alexa | uv | country | +----+----------------+----------------------------+-----+-------+---------+---------+ | 1 | 百度 | https://www.baidu.com/ | 21 | 4 | 5010.5 | CN | | 2 | 淘宝 | https://www.taobao.com/ | 17 | 8 | 3996.75 | CN | | 3 | C语言中文网 | http://c.biancheng.net/ | 12 | 7923 | 11.62 | CN | | 4 | Google | https://www.google.com/ | 23 | 1 | 36474 | US | | 5 | GitHub | https://github.com/ | 13 | 95 | 216.3 | US | | 6 | Stack Overflow | https://stackoverflow.com/ | 16 | 48 | 592.2 | US | | 7 | Yandex | http://www.yandex.ru/ | 11 | 53 | 591.82 | RU | | 8 | VK | https://vk.com/ | 23 | 23 | 1206 | RU | +----+----------------+----------------------------+-----+-------+---------+---------+
SQL Server 支持 TOP 子句,以下语句在 SQL Server 上运行通过,它将获取 website 表中的前三条记录:
select top 3 * from website;
执行结果:
+----+-------------+-------------------------+-----+-------+---------+---------+
| id | name | url | age | alexa | uv | country |
+----+-------------+-------------------------+-----+-------+---------+---------+
| 1 | 百度 | https://www.baidu.com/ | 21 | 4 | 5010.5 | CN |
| 2 | 淘宝 | https://www.taobao.com/ | 17 | 8 | 3996.75 | CN |
| 3 | C语言中文网 | http://c.biancheng.net/ | 12 | 7923 | 11.62 | CN |
+----+-------------+-------------------------+-----+-------+---------+---------+
如果您使用 MySQL 数据库,请使用 LIMIT 子句替代:
select * from website limit 3;
如果您使用 Oracle 数据库,请使用 ROWNUM 子句替代:
select * from website where rownum <= 3;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)