zoukankan      html  css  js  c++  java
  • 伪列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)

    );

  • 相关阅读:
    linux下的mysql安装
    linux下解压zip文件
    解決eclipse 的alt + / 快捷鍵不好用
    linux 源代码目录结构
    Linux(ubuntu)下手动安装 firefox 6 并且添加快捷方式图标
    Ubuntu中配置Tomcat与Eclipse整合
    Linux下的tar压缩解压缩命令详解
    ubuntu创建、删除文件及文件夹,强制清空回收站方法
    九度-题目1011:最大连续子序列
    杭电1003-Max Sum
  • 原文地址:https://www.cnblogs.com/kawashibara/p/8963522.html
Copyright © 2011-2022 走看看