SQL TOP子句:限制返回数据的条数

1年前 (2024-04-26)
SQL TOP 子句用于限定要返回的记录的数据,可以是一个具体的数字,也可以是一个百分数。

对于拥有成千上万条记录的大型数据表来说,TOP 子句非常有用,它能够压缩结果集的大小,提高程序查询效率。

注意,并不是所有的数据库都支持 TOP 子句,有些数据库使用其它的等价语句来替代,例如:

  • MySQL 使用 LIMIT 子句获取指定数量的记录;

  • Oracle 使用 ROWNUM 子句获取指定数量的记录。

语法

SELECT 语句中的 TOP 子句的基本语法如下:

SELECT TOP number|percent column_name(s)
FROM table_name

WHERE [condition]

示例

现在有包含如下记录的 website 表:

+----+----------------+----------------------------+-----+-------+---------+---------+

| id | name | url | age | alexa | uv | country |

+----+----------------+----------------------------+-----+-------+---------+---------+

| 1 | 百度 | https://www.baidu.com/ | 21 | 4 | 5010.5 | CN |

| 2 | 淘宝 | https://www.taob网站站点" rel="nofollow" />

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.taob网站站点" rel="nofollow" />

SELECT * FROM website LIMIT 3;


如果您使用 Oracle 数据库,请使用 ROWNUM 子句替代:

SELECT * FROM website WHERE ROWNUM <= 3;