教程 > sql 教程 > 阅读:31

sql top limit 和 rownum——迹忆客-ag捕鱼王app官网

sql 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 |
 ---- ---------- ----- ----------- ---------- 

以下示例将从 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语句实现该效果

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语句实现该效果。

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 |
 ---- --------- ----- ----------- --------- 

查看笔记

扫码一下
查看教程更方便
网站地图