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请问有什么简单的办法?

解决方案 »

  1.   

    select *
      from tableA
     where SortOrder in (select max(SortOrder)
                           from tableA
                          where SortOrder<5)
      

  2.   

    select * from tableA where rownum=1自然排序下第一行纪录 后面的条件都已经不起作用了暂时没有什么简单的办法,
      

  3.   

    select * from (select * from tableA where sortorder<5 order by sortOrder desc) where rownum=1
    貌似就这个了
      

  4.   

    select * from (select * from tableA where sortorder<5 order by sortOrder desc) where rownum=1
    最简单的了!
      

  5.   

    select * from (select * from tableA where sortorder<5 order by sortOrder desc) where rownum=1
    多聯想到嵌套select語句。
      

  6.   

    select   *   from   (select   *   from   tableA   where   sortorder <5   order   by   sortOrder   desc)   where   rownum=1