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表:
TOP 实例
现在,我们希望从上面的 "Customers" 表中选取头两条记录。
我们可以使用下面的 SELECT 语句:
SELECT TOP 2 * FROM Customers
结果:
TOP PERCENT 实例
现在,我们希望从上面的 "Customers" 表中选取 50% 的记录。
我们可以使用下面的 SELECT 语句:
SELECT TOP 50 PERCENT * FROM Customers
结果:
注释:因为总记录数只有5条,总条数的50%只能取到2.5条,但是条数只有整数条,这是不符合常理的,所有结果会自动向上取整,显示3条。
批注
TOP主要用在对查询结果进行分页,这样可以减少显示的数据量,提高查询效率。后面接数字则显示指定的条数,后面接百分数则显示总体数据的百分比。一般与ORDER BY结合使用。