不同数据库中TOP语句的使用
SQL Server 的语法:
- SELECT TOP number|percent column_name(s) FROM table_name
MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的。
MySQL 语法:
- SELECT column_name(s) FROM table_name LIMIT number
例子:
- SELECT * FROM Persons LIMIT 5
Oracle 语法:
- SELECT column_name(s) FROM table_name WHERE ROWNUM <= number
例子:
- SELECT * FROM Persons WHERE ROWNUM <= 5
原始的表 (用在例子中的):
Persons 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
4 | Obama | Barack | Pennsylvania Avenue | Washington |
SQL TOP 实例
现在,我们希望从上面的 "Persons" 表中选取头两条记录。
我们可以使用下面的SELECT 语句:
- SELECT TOP 2 * FROM Persons
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
SQL TOP PERCENT 实例
现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。
我们可以使用下面的 SELECT 语句:
- SELECT TOP 50 PERCENT * FROM Persons
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
补充:
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例:
limit 2, 5