zoukankan      html  css  js  c++  java
  • 演示从表中的行选择第N大/小的值

    本文内容

    • 软件环境
    • Oracle SCOTT 用户
    • 从表选择第N大的值
    • 从表选择第N小的值

    软件环境


    • Windows Server 2008 R2
    • Oracle 11g Release 1 (11.1)

    Oracle SCOTT 用户


    本文使用 SCOTT 用户的 EMP 表。内容如下:

    SQL> select empno,ename,sal
      2  from emp
      3  order by sal desc;
     
         EMPNO ENAME             SAL
    ---------- ---------- ----------
          7839 KING             5000
          7902 FORD             3000
          7788 SCOTT            3000
          7566 JONES            2975
          7698 BLAKE            2850
          7782 CLARK            2450
          7499 ALLEN            1600
          7844 TURNER           1500
          7934 MILLER           1300
          7521 WARD             1250
          7654 MARTIN           1250
     
         EMPNO ENAME             SAL
    ---------- ---------- ----------
          7876 ADAMS            1100
          7900 JAMES             950
          7369 SMITH             800
     
    已选择14行。
     
    SQL>

    从表选择第N大的值


    SQL> select level, max(sal)
      2    from emp
      3   where level = '&n'
      4  connect by prior sal > sal
      5   group by level;
    输入 n 的值:  1
    原值    3:  where level = '&n'
    新值    3:  where level = '1'
     
         LEVEL   MAX(SAL)
    ---------- ----------
             1       5000
     
    SQL> select level, max(sal)
      2    from emp
      3   where level = '&n'
      4  connect by prior sal > sal
      5   group by level;
    输入 n 的值:  3
    原值    3:  where level = '&n'
    新值    3:  where level = '3'
     
         LEVEL   MAX(SAL)
    ---------- ----------
             3       2975
     
    SQL>

    从表选择第N小的值


    SQL> select level, min(sal)
      2    from emp
      3   where level = '&n'
      4  connect by prior sal < sal
      5   group by level;
    输入 n 的值:  1
    原值    3:  where level = '&n'
    新值    3:  where level = '1'
     
         LEVEL   MIN(SAL)
    ---------- ----------
             1        800
     
    SQL> select level, min(sal)
      2    from emp
      3   where level = '&n'
      4  connect by prior sal < sal
      5   group by level;
    输入 n 的值:  5
    原值    3:  where level = '&n'
    新值    3:  where level = '5'
     
         LEVEL   MIN(SAL)
    ---------- ----------
             5       1300
     
    SQL>
  • 相关阅读:
    二分查找 java代码
    Failed at the bitcore-node@3.1.3 preinstall script './scripts/download' 设置linux proxy (代理)的方式
    github命令行实用操作
    H5无障碍旁白模式使用网页支持
    Vue框架搭建入门到熟悉
    解决IOS下返回不刷新的问题
    小程序—跳转 数据传递
    微信小程序——地图
    常用的正则判断
    JS 控制输入框输入表情emoji 显示在页面上
  • 原文地址:https://www.cnblogs.com/liuning8023/p/3074297.html
Copyright © 2011-2022 走看看