发表于 2015-6-17 08:59:42

OCP prepare 20140628

  1. null if       nvl   nvl2
  NULLIF函数
  Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果。
  注意:表达式1和表达式2应该是相同数据类型或能隐含转换成相同数据类型,表达式1不能用字符null。www.iyunv.com
  示例1:如果sal为888的则返回空
  
  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.iyunv.com
  示例一:在emp表中给comm列为空的人员设为200
     www.iyunv.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.iyunv.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语句简单了许多
  
页: [1]
查看完整版本: OCP prepare 20140628