zoukankan      html  css  js  c++  java
  • OCP prepare 20140628

    1. null if       nvl     nvl2

    NULLIF函数

    Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果。

    注意:表达式1和表达式2应该是相同数据类型或能隐含转换成相同数据类型,表达式1不能用字符null。  www.2cto.com  

    示例1:如果sal为888的则返回空

    [sql] 

    SQL> select a.ename,a.sal,nullif (sal,8888) value from emp a;  

    ENAME                       SAL      VALUE  

    -------------------- ---------- ----------  

    SMITH                        99         99  

    ALLEN                      8888  

    WARD                       8888  

    NVL2(expr1,expr2,expr3) 

      功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。

    NVL( string1, replace_with)

      功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
     

    COALESCE函数

    Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。

    注意:所有表达式必须为同一类型或者能转换成同一类型。  www.2cto.com  

    示例一:在emp表中给comm列为空的人员设为200

    [sql]   www.2cto.com  

    SQL> select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a;  

         EMPNO ENAME                      COMM   NEW_COMM  

    ---------- -------------------- ---------- ----------  

          7369 SMITH                                  200  

          7499 ALLEN                       300        300  

    2.

    MIN(), MAX()是聚合函数.
    group by 后面是要跟着的 select 中所有不是聚合函数的字段。
    ex1: select count(*) from emp; //只是查询总总数 emp这张表里一共有多少条记录 所以不用group by
    ex2: select count(*) , deptno from emp group by deptno;
    // 根据deptno 分组, 查到的数据就是 列出 不同部门 记录总数
    select count(*) , deptno , comm from emp group by deptno , comm;
    // 根据deptno 和 comm 分组 以此类推
    group by 后面是要跟着的 select 中所有不是聚合函数的字段 否则会报错。
     


    having 相当于where
    与where的唯一区别是 
    当查询语句中有 聚合函数 的时候 就不能用where 了  只能用having

    3. join

    http://www.cnblogs.com/lovemoon714/archive/2012/03/02/2376782.html

    4. DECODE

    含义解释:
    decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

    该函数的含义如下:
    IF 条件=值1 THEN
        RETURN(翻译值1)
    ELSIF 条件=值2 THEN
        RETURN(翻译值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(翻译值n)
    ELSE
        RETURN(缺省值)
    END IF
    decode(字段或字段的运算,值1,值2,值3)

           这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
    当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

  • 相关阅读:
    Linux centosVMware iptables规则备份和恢复、firewalld的9个zone、firewalld关于zone的操作、firewalld关于service的操作
    Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
    Linux centos7日常运维——监控io性能、free内存命令、ps进程命令、查看网络状态、linux下抓包
    三、haproxy反向代理
    二、NGINX反向代理
    一、APACHE反向代理
    一、Zabbix安装
    KVM安装测试
    三、CentOS7.4下kibana6.2.4安装
    二、CentOS7.4下Logstash6.2.4安装
  • 原文地址:https://www.cnblogs.com/oraclesea/p/3813928.html
Copyright © 2011-2022 走看看