为了账号安全,请及时绑定邮箱和手机立即绑定

关于子查询

select r,e1.*

from (select rownum r,e1.*

            from (select empno,ename,sal from emp order by sal desc ) e1

            where rownum<=8) e2

where r >4

这样不行?

select r,e2.*

from (select rownum r,e1.*

            from (select empno,ename,sal from emp order by sal desc ) e1

            where rownum<=8) e2

where r >4

这样就可以了??


正在回答

3 回答

  select r,e1.*
  from (select 
                rownum r
         ,e1.* 
       from (
          select 
                            empno
               ,ename
                ,sal 
            from emp 
           order by sal desc 
          ) e1  
             where rownum<=8 ) e2
     where r >4

e1 是最内侧的

e2 是中间层

最外层select 查出结果。

  select r,e1.*
  from (select 
                rownum r
         ,e1.* 
       from (
          select 
中间还隔着一层,所以不可以e1


0 回复 有任何疑惑可以回复我~

select  rownum,e1.* 开头没问题   如果代入 R 的话 结合后面 where r>4  最后会出来两排R参数

0 回复 有任何疑惑可以回复我~

你看是 以谁为主表   你第一个查询的 是 e1.* 而e1表在 子表里面 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于子查询

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信