`

QUESTIONS

阅读更多

问题一:获取SCOTT用户中EMP表里最早入职的前五名雇员?

 

SQL> select top 5 * from emp order by hiredate asc;

 SQL Server中的写法,不适用于Oracle数据库。


下面也是错误的写法

 

SQL> select rownum,empno,ename,hiredate from emp
  2  where rownum<6 
  3  order by hiredate asc;

 正确的写法:

使用了内嵌视图,构造中间的临时查询结果,在这个结果基础上,使用rownum处理

 

 1  select empno,ename,hiredate from (select empno,ename,hiredate from emp
  2  order by hiredate asc)
  3* where rownum<6
SQL> /

 问题二:获取SCOTT用户中EMP表里最早入职的 第 五 名 雇员?

 

1  select empno,ename,hiredate from
  2  (select empno,ename,hiredate from
  3  (select empno,ename,hiredate from (select empno,ename,hiredate from emp
  4  order by hiredate asc)
  5  where rownum<6)  order by hiredate desc)
  6* where rownum<2
SQL> /
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics