大家的思路好像都集中在ORDERBY 和ROWNUM上,如果你开发过ORACLE的FORM,就会很快得到答案。使用游标或者称为事务,可很好解决这个问题:
declare
i integer;
rec record like.表....(不确,查相关资料)
cursor cur_dd is
select * FROM 表 ORDER BY 列 DESC
Begin
i:=0;
open cur_dd;
loop
fetch cur_dd into rec
i:=i+1;
exit when i>10
显示该条记录
end loop;
嘿嘿,仔细看了看那段E文,ORACLE没有说不能用。大家仔细看看吧,那段文字的大意是这样的:
“Oracle 分配一个ROWNUM给每一行被检索出来的数据,在行被一个ORDER BY 子句排序之前,因此一个ORDER BY 子句通常不会影响每一行的ROWNUM。然而,如果一个ORDER BY 子句促使Oracle使用一个索引去访问数据,Oracle可能用一种不同于没有索引的顺序来检索那些行,因此那些ROWNUM可能不同于没有使用ORDER BY 子句时的情况。”
真是一点都没有错,看看我的那些试验结果吧。:)
SQL> select rownum,jiudianname as 酒店名称,doubleroom as 双人间数量, xinji as 星级, address as 地址,
telephone as 电话 from tab_jiudian where rownum<=10 order by xinji desc,doubleroom desc;