[Q]怎么样实现分组取前N条记录 [A]8i以上版本,利用分析函数 如获取每个部门薪水前三名的员工或每个班成绩前三名的学生。 Select * from (select depno,ename,sal,row_number() over (partition by depno order by sal desc) rn from emp) where rn<=3
[Q]怎么样把相邻记录合并到一条记录 [A]8i以上版本,分析函数lag与lead可以提取后一条或前一天记录到本记录。 Select deptno,ename,hiredate,lag(hiredate,1,null) over (partition by deptno order by hiredate,ename) last_hire from emp order by depno,hiredate
[Q]如何取得一列中第N大的值? [A]select * from (select t.*,dense_rank() over (order by t2 desc) rank from t) where rank = [$N]
[Q]怎么样把查询内容输出到文本 [A]用spool如 如sqlplus –s " / as sysdba" <<EOF set heading off set feedback off spool temp.txt select * from tab; dbms_output.put_line(‘test’); spool off exit EOF
[code="java"][Q]怎么样实现分组取前N条记录 [A]8i以上版本,利用分析函数 如获取每个部门薪水前三名的员工或每个班成绩前三名的学生。 Select * from (select depno,ename,sal,row_number() over (partition by depno order by sal desc) rn from ...