SQL – TOP、LIMIT 或 ROWNUM 子句
SQL – TOP、LIMIT 或 ROWNUM 子句
SQL TOP子句用于从表中获取 TOP N 条记录或 X% 的记录。
注意– 所有数据库都不支持 TOP 子句。例如 MySQL 支持LIMIT子句来获取有限数量的记录,而 Oracle 使用ROWNUM命令来获取有限数量的记录。
句法
带有 SELECT 语句的 TOP 子句的基本语法如下。
SELECT TOP number|percent column_name(s) FROM table_name WHERE [condition]
例子
考虑具有以下记录的 CUSTOMERS 表 –
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
以下查询是 SQL 服务器上的一个示例,它将从 CUSTOMERS 表中获取前 3 条记录。
SQL> SELECT TOP 3 * FROM CUSTOMERS;
这将产生以下结果 –
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+
如果您使用的是 MySQL 服务器,那么这里是一个等效的示例 –
SQL> SELECT * FROM CUSTOMERS LIMIT 3;
这将产生以下结果 –
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+
如果您使用的是 Oracle 服务器,则以下代码块具有等效示例。
SQL> SELECT * FROM CUSTOMERS WHERE ROWNUM <= 3;
这将产生以下结果 –
+----+---------+-----+-----------+---------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+---------+-----+-----------+---------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | +----+---------+-----+-----------+---------+