首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

sortorder和rownum同时使用的有关问题

2012-06-01 
sortorder和rownum同时使用的问题tableAID,Name,SortOrder1A52B33C44D1找出SortOrder小于某个值的最大记录

sortorder和rownum同时使用的问题
tableA
ID,Name,SortOrder
1     A         5
2     B         3
3     C         4
4     D         1

找出SortOrder小于某个值的最大记录.

如SortOrder=5时,应该找出SortOrder=4的记录

我的sql:
select   *   from   tableA   where   rownum=1   and   sortOrder <5   order   by   sortOrder   desc

但是这个找出的结果不是每次都正确.

而必须要用
select   *   from   (select   *   from   tableA   where   sortorder <5   order   by   sortOrder   desc)   where   rownum=1

请问有什么简单的办法?



[解决办法]
select *
from tableA
where SortOrder in (select max(SortOrder)
from tableA
where SortOrder <5)
[解决办法]
up
[解决办法]
第一个是先排序,在筛选。
第二个是用函数查找,如果表内容很多时,我认为第二个速度能快一些

[解决办法]
select * from tableA where rownum=1自然排序下第一行纪录 后面的条件都已经不起作用了

暂时没有什么简单的办法,
[解决办法]
select * from (select * from tableA where sortorder <5 order by sortOrder desc) where rownum=1


貌似就这个了
[解决办法]
select * from (select * from tableA where sortorder <5 order by sortOrder desc) where rownum=1
最简单的了!
[解决办法]
问下楼主,锄禾是谁啊?
[解决办法]
select * from (select * from tableA where sortorder <5 order by sortOrder desc) where rownum=1
多聯想到嵌套select語句。

热点排行