• 伪列ROWNUM、ROWID部分用法


    ROWNUM是逻辑值,不可以参与计算

    ROWID是物理值,可以参与计算

    在ROWNUM和ROWID使用中,现将查找结果形成一个结果集 在结果集中给ROWID 和ROWNUM别名,在外层中使用这个别名找到要找的行。

     

    ROWNUM用法

    ROWNUM必须要给它起别名 不能直接用

    查找emp表第五到第十行

    SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO FROM(SELECT ROWNUM RN,EMP.* FROM EMP)WHERE RN>=5 AND RN<=10;

    ROWID伪列

    SELECT ROWID,E.* FROM EMP E;查看伪列

    至于ROWID的作用,由于ROWID用来唯一标识表中数据的唯一性,所以可以利用这个特效去除重复

    CREATE TABLE DEPT_8 AS SELECT * FROM DEPT WHERE 1=2;

    INSERT INTO DEPT_8 SELECT * FROM DEPT;

    INSERT INTO DEPT_8 SELECT * FROM DEPT;

    COMMIT;

    delete DEPT_8 where rowid not in (select max(rowid) from DEPT_8 group by DEPTNO,DNAME,LOC);

    SELECT ROWID,DEPT_8.* FROM DEPT_8;

    利用ROWNUM删去表中第3行

    DELETE EMP2 WHERE EMPNO=

    (

    SELECT EMPNO FROM (SELECT ROWNUM RN,E.* FROM EMP2 E)WHERE RN=3

    );

    利用ROWNUM删去表中第5到7行

    DELETE EMP4 WHERE EMPNO IN

    (

    SELECT EMPNO FROM(SELECT ROWNUM RN,E.* FROM EMP4 E)WHERE ROWNUM BETWEEN 5 AND 7

    );

    利用ROWNUM删去表中倒数第五行

    DELETE EMP8 WHERE EMPNO=

    (

    SELECT EMPNO FROM(SELECT ROWNUM RN,EMP8.* FROM EMP8)WHERE RN=((SELECT COUNT(*)-4 FROM EMP8))

    );

    有很多重复的行,如何利用ROWNUM和ROWID删去倒数第五行

    DELETE EMP10 WHERE ROWID=

    (

    SELECT RID FROM(SELECT ROWID RID,ROWNUM RN,E.* FROM EMP10 E)WHERE RN=(SELECT COUNT(*)-4 FROM EMP10)

    );

  • 相关阅读:
    10.9 第七次作业游戏
    10.23 第六次作业 刘惠惠 this关键字
    第五次作业 刘惠惠 自动生成的方法存根
    谷歌历史影像下载
    ArcGIS 基础13-整饰输出
    ArcGIS 基础12-保存文件并打包
    ArcGIS 基础11-专题制图
    ArcGIS 基础10-拓扑校验
    ArcGIS 基础9-属性查询和空间查询
    ArcGIS 基础8-坐标系转换
  • 原文地址:https://www.cnblogs.com/kawashibara/p/8963522.html
Copyright © 2020-2023  润新知