SQL Select Top

创建于 2024-12-02 / 29
字体: [默认] [大] [更大]

TOP 子句

TOP 子句用于规定要返回的记录的数目。

TOP 子句对于包含数千条记录的大型表很有用。返回大量记录可能会影响性能。

注释: 并非所有数据库系统都支持 SELECT TOP子句。MySQL 使用 LIMIT,而 Oracle 使用 ROWNUM。

SQL Server / MS Access 的语法:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 语法:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

演示数据库

以下是从 Northwind 示例数据库的 "客户(Customers)" 表中查询的内容:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


SQL TOP、LIMIT 和 ROWNUM 示例

以下 SQL 语句从 "Customers" 表中选择前三条记录(用于 SQL Server/MS Access):

实例

SELECT TOP 3 * FROM Customers; 亲自试一试 »

下面的 SQL 语句显示使用 LIMIT 子句的等效示例(用于 MySQL):

实例

SELECT * FROM Customers
LIMIT 3; 亲自试一试 »

下面的 SQL 语句显示使用 ROWNUM 子句的等效示例(用于 Oracle):

实例

SELECT * FROM Customers
WHERE ROWNUM <= 3;

SQL TOP PERCENT 实例

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

以下 SQL 语句从 "Customers" 表中选择前 50% 的记录(用于SQL Server/MS Access):

实例

SELECT TOP 50 PERCENT * FROM Customers; 亲自试一试 »

添加WHERE子句

以下 SQL 语句从 "Customers" 表中选择前三条记录,其中 country 为 "Germany"(用于SQL Server/MS Access):

实例

SELECT TOP 3 * FROM Customers
WHERE Country='Germany'; 亲自试一试 »

下面的 SQL 语句显示了使用 LIMIT 子句的等效示例(用于 MySQL):

实例

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3; 亲自试一试 »

下面的 SQL 语句显示了使用 ROWNUM 子句的等效示例(用于 Oracle):

实例

SELECT * FROM Customers
WHERE Country='Germany' AND ROWNUM <= 3;

0 人点赞过