ROWNUM的使用
要求:stuId降序排列从学生表里选出第一个学生的所有信息。(学生表主键stuId)
1.
select *
from students
where rownum = 1
order by stuId desc
2.
select *
from (
select *
from students
order by stuId desc )
where rownum = 1
这两条语句检索的结果是一样的。
但实际上两条语句的意义并不同。
因为oracle执行sql语句时where是在order by之前执行的。
如果要求变成:按成绩降序排列从学生表里选出第一个学生的所有信息。(学生表主键stuId)
3.
select *
from students
where rownum = 1
order by grades desc
4.
select *
from (
select *
from students
order by grades desc )
where rownum = 1
3得出的结果就不会是我们想要的结果。