类别:

查询语法

TOP <n>

约束语句或子查询返回的最大行数。

另请参阅:

LIMIT / FETCH

语法

SELECT
  [ TOP <n> ]
    ...
FROM ...
[ ORDER BY ... ]
[ ... ]

参数

n

结果集中要返回的最大行数。

使用说明

  • ORDER BY 子句不是必需的;但是,如果没有 ORDER BY 子句,结果是不确定的,因为结果集中的结果不一定按任何特定顺序排列。要控制返回的结果,请使用 ORDER BY 子句。

  • 当查询中 TOP <n> 和 ORDER BY 处于不同的嵌套层级时,结果可能不可预测。有关详细信息和示例,请参阅 LIMIT / FETCH 使用说明

  • n 必须是非负整数常量。

  • TOP n 和 LIMIT count 是等效的。

示例

以下示例展示了 TOP N 的效果。为简便起见,这些查询省略了 ORDER BY 子句,并假设输出顺序始终与第一个查询所示顺序相同。在实际查询中,应包含 ORDER BY 子句。

SELECT c1 FROM testtable;
+------+
|   C1 |
|------|
|    1 |
|    2 |
|    3 |
|   20 |
|   19 |
|   18 |
|    1 |
|    2 |
|    3 |
|    4 |
| NULL |
|   30 |
| NULL |
+------+
SELECT TOP 4 c1 FROM testtable;
+----+
| C1 |
|----|
|  1 |
|  2 |
|  3 |
| 20 |
+----+