select * from dept  当前 deptno 的 dname 值取 deptno+1 的 dname,如果是最大的,取最小的那个
这个存储过程改怎么写啊!求助

解决方案 »

  1.   

        
    select A.*
    from     
        (select t.deptno ,    nvl(lead(t.dname) over(order by t.deptno ),dname)
         from dept t
        ) a,
        dept b
    where b.deptno  =3
      and  b.deptno  = A.deptno 
      

  2.   

    其实是这样的,是要实现dept表中 dname 这个字段值的错位,最后一天记录的dname变成第一条记录的dname字段值,其他的依次每行错位
      

  3.   


    倒,多此一举select t.deptno ,  nvl(lead(t.dname) over(order by t.deptno ),dname)
      from dept t
    where t.deptno =3
      

  4.   

     select *
       from(   
        select t.deptno,
            t.dname,
            row_number() over(order by t.deptno desc) rmMax,
            row_number() over(order by t.deptno asc) rmMin
             from dept t
        )
       order by decode(rmMax,1,0,rmMin) 
      

  5.   

    select deptno,dname,dname1,dname2,nvl(dname1,dname2)
    from 
    (select  a.deptno
            ,a.dname
            ,lead(dname) over(order by deptno) dname1
            ,FIRST_VALUE(dname)  over(order by deptno) dname2
    from dept a
    )t
    ;
      

  6.   


    over():分析函数的使用,楼主没用过分析函数,可以找一下
    了解分析函数可以省许多精力