读书人

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

发布时间: 2012-06-01 16:46:36 作者: rapoo

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句。

读书人网 >oracle

热点推荐