前端之家收集整理的这篇文章主要介绍了
5-在ORACLE中实现SELECT TOP N,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
@H_
403_2@
@H_
403_2@
简单地说,实现方法如下所示:
@H_
403_2@ SELECT 列名1...列名n FROM
@H_
403_2@ (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n)
@H_
403_2@ WHERE ROWNUM <= N(抽出记录数)
@H_
403_2@ ORDER BY ROWNUM ASC
@H_
403_2@ 下面举个例子简单说明一下。
@H_
403_2@顾客表customer(id,name)有如下数据:
@H_
403_2@ ID NAME
@H_
403_2@ 01 first
@H_
403_2@ 02 Second
@H_
403_2@ 03 third
@H_
403_2@ 04 forth
@H_
403_2@ 05 fifth
@H_
403_2@ 06 sixth
@H_
403_2@ 07 seventh
@H_
403_2@ 08 eighth
@H_
403_2@ 09 ninth
@H_
403_2@ 10 tenth
@H_
403_2@ 11 last
@H_
403_2@ 则按NAME的字母顺抽出前三个顾客的
sql语句如下所示:
@H_
403_2@ SELECT * FROM
@H_
403_2@ (SELECT * FROM CUSTOMER ORDER BY NAME)
@H_
403_2@ WHERE ROWNUM <= 3
@H_
403_2@
输出结果为:
@H_
403_2@ 01 first