日期:2014-05-17  浏览次数:20909 次

关于SQL里的TOP 1在ORACLE中的写法
在SQL里。一般要选都是第一条都是
select top 1  a,b from table order by c.
我在 ORACLE里这样改
select * from (select a,b from table order by c) where rownum<=1
我这样写 会不会不够严谨。还望大哥们,指导下

------解决方案--------------------
where后面的语句是从右往左的执行的,还有你这条SQL可以优化下select a,b from (select a,b from table order by c) where rownum<=1
------解决方案--------------------
引用:
引用:你想要的是什么效果 一般情况我是不用这样子的  只有需要的时候才会用 
select top 1  a,b from table order by c.

select * from (select a,b from table order by c) where rownum<=1
这两个效果一样子的  只是多了一个  条件……

rownum是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。