oracle用WHERE替代ORDER BY】的更多相关文章

ORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列. 例如: 表DEPT包含以下列: DEPT_CODE    PK    NOT NULL DEPT_DESC           NOT NULL DEPT_TYPE           NULL 非唯一性的索引(DEPT_TYPE) 低效: (索引不被使…
为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两个无法回避的缺点: 打破了封装性,子类依赖于超类的实现细节,和超类耦合. 超类更新后可能会导致错误. 继承打破了封装性 关于这一点,下面是一个详细的例子(来源于Effective Java第16条) public class MyHashSet<E> extends HashSet<E>…
针对页面传参到in的子集中去进行查询操作的话,就会有in(xxx,null),这样就会导致查询的结果中其实直接过滤掉了null,根本就查不出来null的值.之前对于null的操作都是进行不同数据库的null函数来进行选择nvl.isnull.ifnull等,直接将字段的null进行转换后再操作. 只知道要对数据库中的null进行转换的操作,但是不知所云,所以今天就大致了解下.针对oracle的null的基本操作: 一.null值的介绍 NULL 是数据库中特有的数据类型,当一条记录的某个列为 N…
转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本身没有特别好写的,因为这二者都是及其常用的sql句子的组成.通常order by 和group by 没有太多的关系,但是它们常常组合在一起用,完成分组加排序的功能.例如有下表:  SQL> select * from students;                              I…
问题 SQL语句中,UNION拼接两个单独的SQL时候,单独的SQL中加入ORDER BY会报错,ORDER BY只能放在句末. // 会报错的语句 SELECT S.S_ID AS ID,S.S_NAME AS NAME FROM STUDENT S ORDER BY S_NAME UNION SELECT S2.S_ID AS ID,S2.S_NAME AS NAME FROM STUDENT2 S2 ORDER BY S_NAME // 可以正常执行的语句 SELECT S.S_ID AS…
转自:https://jingyan.baidu.com/article/9989c74604a644f648ecfef3.html SELECT ROW_NUMBER() OVER(PARTITION BY ta.Process_Instance_Id ORDER BY nvl(ta.status, 'D') ASC, nvl(ta.finish_date, ta.start_date) DESC) AS ROW_INDEX, ta.* FROM warn_task ta; 2. row_nu…
当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务, ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况) 而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短.  ( TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)…
替代触发器 替代视图增删改操作.视图可以认为成逻辑上的一张表,类似于把一个sql语句的执行结果永久的像表存储到数据 库中,视图一般用来做查询. 创建视图的语法: create view 视图名称 as sql语句: --创建视图 ,存储部门编号,部门的平均工资,部门总人数,部门员工的最高工资 create view vi_dept as select d.deptno ,avg(e.sal) avg_sal,count(e.empno) emp_count,max(e.sal) emp_sal…
大家都知道exists的速度要比in的速度快,也知道exists函数返回一个布尔值,也就是说exists函数里最后要是 a.id =b.id类似这种方式结束. 例如: SELECT * FROM TBL_REBATE_DAY_COUNT WHERE ID IN (1, 2, 3, 4, 5); (假设TBL_ALGO_RECORD 表中有ID=1,2,3,4,5)常规的方式转换成exists为 SELECT * FROM TBL_REBATE_DAY_COUNT a WHERE exists(S…
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 低效: SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB’) 高效: SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X’ FR…