从别处看到的,本人在用的是DB2,竟然都不一样……看来是不能说“会SQL,所有的数据库用起来都一样”了。
1. ORACLE
SELECT * FROM TABLE1 WHERE ROWNUM<=N
2. INFORMIX
SELECT FIRST N * FROM TABLE1
3. DB2
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N
DB2
SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY
4. SQL SERVER
SELECT TOP N * FROM TABLE1
5. SYBASE
SELECT TOP N * FROM TABLE1
6. mysql:
select * from table_name limit N
SQL查询技巧对比
本文对比了不同数据库系统中实现获取前N条记录的方法,包括Oracle、Informix、DB2、SQL Server、Sybase及MySQL等,揭示了虽然SQL语言通用但各数据库实现细节差异明显。
506





