SQL SERVER ,ORACLE 8i,DB2三种数据库分页SQL语句
来源:互联网 发布:mysql备份数据库命令 编辑:程序博客网 时间:2024/05/16 03:29
简单地说,TOP N问题就是:在SELECT中,仅选择按照某(些)列排序后TOP N的纪录. 考虑到等值问题,又可以分为两种: 一是仅仅返回N条纪录(M 1), 二是还包括所有于第N条等值的纪录(M 2). 当然最内层的子查询也可以有其他的子句, 或者TOP N也可以应用在没有ORDER BY的情况下,这样更简单.
1. SQL SERVER 7: 用 TOP N (WITH TIES)
M1:
SELECT TOP N * FROM MYTABLE ORDER BY ORD_COL;
M2:
SELECT TOP N WITH TIES * FROM MYTABLE ORDER BY ORD_COL;
注: SQL SERVER 7提供了PERCENT N WITH TIES, ACCESS 中提供了TOP N,但含义是M 2.
2. ORACLE 8i: 用 ROWNUM<=N
M1:
SELECT * FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUM<=N
M2:
SELECT * FROM MYTABLE WHERE ORD_COL>=
(SELECT MIN(ORD_COL) FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUM<=N)
ORDER BY ORD_COL DESC
注意以下两种错误用法:
WRONG 1:
SELECT * FROM MYTABLE
WHERE ROWID<=N
ORDER BY ORD_COL DESC;
WRONG 2:(因为WHERE ROWNUM<=N 在ORDER BY 前执行)
SELECT * FROM MYTABLE
WHERE ROWNUM<=N
ORDER BY ORD_COL DESC;
3: DB2
用FETCH FIRST N ROWS ONLY
M1:
SELECT * FROM MYTABLE
ORDER BY ORD_COL DESC
FETCH FIRST N ROWS ONLY
1. SQL SERVER 7: 用 TOP N (WITH TIES)
M1:
SELECT TOP N * FROM MYTABLE ORDER BY ORD_COL;
M2:
SELECT TOP N WITH TIES * FROM MYTABLE ORDER BY ORD_COL;
注: SQL SERVER 7提供了PERCENT N WITH TIES, ACCESS 中提供了TOP N,但含义是M 2.
2. ORACLE 8i: 用 ROWNUM<=N
M1:
SELECT * FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUM<=N
M2:
SELECT * FROM MYTABLE WHERE ORD_COL>=
(SELECT MIN(ORD_COL) FROM
( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
WHERE ROWNUM<=N)
ORDER BY ORD_COL DESC
注意以下两种错误用法:
WRONG 1:
SELECT * FROM MYTABLE
WHERE ROWID<=N
ORDER BY ORD_COL DESC;
WRONG 2:(因为WHERE ROWNUM<=N 在ORDER BY 前执行)
SELECT * FROM MYTABLE
WHERE ROWNUM<=N
ORDER BY ORD_COL DESC;
3: DB2
用FETCH FIRST N ROWS ONLY
M1:
SELECT * FROM MYTABLE
ORDER BY ORD_COL DESC
FETCH FIRST N ROWS ONLY
- SQL SERVER ,ORACLE 8i,DB2三种数据库分页SQL语句
- SQL Server Oracle DB2 三种数据库性能比较
- SQL Server与Oracle、DB2三种数据库比较
- 三种数据库SQL语句高效分页
- SQL Server、MySql、Oracle三种数据库的分页实现
- Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法
- Oracle,MySQL,SQL Server三种数据库用法差异
- 三种数据库sql分页查询
- 三种数据库的SQL分页
- DB2,Oracle,SQL server,Mysql分页查询语句
- 对三种数据库Oracle 、SQL sever、 DB2的备份及恢复测试
- MySQL、SQL Server、Oracle 3种数据库查询表中前N行记录的SQL语句
- 三种数据库利用SQL语句进行高效果分页
- 三种数据库利用SQL语句进行高效果分页
- oracle、DB2、mysql、sql 2000分页语句
- Oracle sqlserver MySQL三种数据库查询分页语句
- 几种数据库利用SQL语句进行分页
- 三种数据库日期转字符串对比sql server、oracle、mysql(V4.11)
- Windows下安装和配置SVN Server
- ios_base::app方式不受seekp()的影响
- ArmLinux BOOTLOADER全程详解
- 蛋糕
- 真路历程--- 看了受了点启发
- SQL SERVER ,ORACLE 8i,DB2三种数据库分页SQL语句
- 在SQL SERVER中定时执行SQL语句,或者存储过程
- SQL语言小结和优化(整理)
- 学习笔记:DB2 V9 管理 - 4
- Ajax 很热
- 学习笔记:DB2 V9 管理 - 5
- 恋前体检!您接受吗?
- 学习笔记:DB2 V9 管理 - 6
- sql 如何提取某一字段记录的部分数据