zoukankan      html  css  js  c++  java
  • Oracle数据库点滴

    分页查询:

    SELECT * FROM
    (
    SELECT A.*, ROWNUM RN
    FROM (SELECT * FROM TABLE_NAME) A
    WHERE ROWNUM <= 40
    )
    WHERE RN >= 21

    sql执行顺序:

      1、from子句组装来自不同数据源的数据;
      2、where子句基于指定的条件对记录行进行筛选;
      3、group by子句将数据划分为多个分组;
      4、使用聚集函数进行计算;
      5、使用having子句筛选分组;
      6、计算所有的表达式;
      7、select 的字段;

      8、使用order by对结果集进行排序。

      其中:

      HAVING主要用于对分组后的数据进行过滤,一般我们在其后接聚合函数(SUM,COUNT等),

      除此之外我们还可以用GROUP BY后面的字段组成HAVING后的过滤条件。

      如:SELECT loc,deptno FROM dept GROUP BY loc,deptno HAVING deptno>30; 

        SELECT loc FROM dept GROUP BY loc HAVING count(deptno)>1;  

        但不可以:SELECT loc FROM dept GROUP BY loc HAVING deptno>30;因为having后并非聚集函数也group by 后的列明。

     in和exist使用:

    in和not in条件严密性差不多,如果name值比较多的时候,in的严密性更高,索引都是按照顺序排好的,相等的情况只有一种,不等的情况有很多种。 
    如果你('a', 'b')这些值是放在另外一个表里面,还有not exsits可以替换,如果是常量的话,貌似也只能这么写了。
  • 相关阅读:
    python编程基础之十四
    python编程基础之十三
    python编程基础之十二
    C++11的新特性
    第六章 分支语句和逻辑运算符
    第五章 循环和关系表达式
    C++ 管理数据内存的方法
    C++数组和指针
    第二、三章 开始学习C++、数据处理
    第一章 预备知识
  • 原文地址:https://www.cnblogs.com/shz365/p/3782016.html
Copyright © 2011-2022 走看看