SQL基础知识V2——TOP

SQL执行顺序

按惯例先上SQL Server查询顺序,小括号()里面的数字代码数据库引擎在执行查询语句时候的先后顺序,从1开始:

(8)SELECT (9)DISTINCT  (11)<top Num> <select list>
(1)FROM 
[left_table]
(3)<join_type>
JOIN <right_table>
(2
       ON <join_condition>
(4)WHERE 
<where_condition>
(5)GROUP 
BY <group_by_list>
(6)WITH 
<CUBE | RollUP>
(7)HAVING 
<having_condition>
(10)ORDER 
BY <order_by_list>


TOP 子句定义

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

对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

注释:并非所有的数据库系统都支持 TOP 子句。

SQL Server TOP 的语法

SELECT TOP number|percent columns

FROM table_name

MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的

MySQL 语法

SELECT columns

FROM table_name LIMIT number

例子

SELECT * FROM Customers LIMIT 5

Oracle 语法

SELECT columns

FROM table_name 

WHERE ROWNUM <= number

例子

SELECT * FROM Customers
WHERE ROWNUM <= 5

原始的表 (用在例子中的)Customers表:

SQL基础知识V2——TOP

TOP 实例

现在,我们希望从上面的 "Customers" 表中选取头两条记录。

我们可以使用下面的 SELECT 语句:

SELECT TOP 2 * FROM Customers

结果:


SQL基础知识V2——TOP

TOP PERCENT 实例

现在,我们希望从上面的 "Customers" 表中选取 50% 的记录。

我们可以使用下面的 SELECT 语句:

SELECT TOP 50 PERCENT *
FROM Customers

结果:


SQL基础知识V2——TOP


注释:因为总记录数只有5条,总条数的50%只能取到2.5条,但是条数只有整数条,这是不符合常理的,所有结果会自动向上取整,显示3条。


批注

TOP主要用在对查询结果进行分页,这样可以减少显示的数据量,提高查询效率。后面接数字则显示指定的条数,后面接百分数则显示总体数据的百分比。一般与ORDER BY结合使用。

上一篇:VC++调试,TRACE()函数的用法


下一篇:设计模式(二十) 观察者模式