1. Oracle數據庫
SELECT * FROM TABLENAME WHERE ROWNUM <= N
2. Infomix數據庫
SELECT FIRST N * FROM TABLENAME
3. DB2數據庫
SELECT *
FROM (SELECT * ROW_NUMBER() OVER({ORDER BY COL1 DESC}) AS ROWNUM FROM TABLENAME)
WHERE ROWNUM <= N
或者
SELECT COLUMN FROM TABLENAME FETCH FIRST N ROWS ONLY
4. SQL Server數據庫
SELECT TOP N * FROM TABLENAME
5. Sybase數據庫
SET ROWCOUNT N
GO
SELECT * FROM TABLENAME
6. MySQL數據庫
SELECT * FROM TABLENAME LIMIT N
7. FoxPro數據庫
SELECT * TOP N FROM TABLENAME ORDER BY COLUMN
以下示例從表 [tableName] 中讀取符合查詢條件的前10條記錄的SQL語句
1.Access
select top (10) * from [tableName] where [query condition]
1.1 帶order by的查詢限制
Access中對select top的語句支持有限,如果要在查詢top語句的后面使用order by,則order by排序字段必須是無重復值,如果有重復值的話,那么這個TOP很可能會失效,會返回所有記錄。
解決辦法:在order by 最后面加入主鍵id,如:
select top 10 from [tableName] order by 排序字段1,id
1.2 帶子查詢的示例
假如id是表[tableName]的主鍵,以下語句期望返回三條記錄,但結果返回4條記錄
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4)
解決辦法
select top 3 * from [tableName] where id in(是個子查詢,結果比如為1,2,3,4) order by id
2 DB2
select column from [tableName] where [query condition] fetch first 10 rows only
3 MySQL
select * from [tableName] where [query condition] limit 10
4 SQL Server
4.1 讀取前10條
select top (10) * from [tableName] where [query condition]
4.2 讀取后10條
select top (10) * from [tableName] order by id desc
4.3 按照某個排序,第5到10這幾個記錄
select top 6 * from [tableName] where id not in(select top 4 id from [tableName])
5 Oracle
select * from [tableName] where rownum<=10</pre>