zoukankan      html  css  js  c++  java
  • 06-oracle 通用函数

    --nvl(数字|列名,默认值) 数字或列的值为null显示为0,不为null时显示原值

    --nvl2(comm,comm,0)如果comm不为null则显示comm,为null则显示0

    --nullif(表达式一,表达式二) 判断2个表达式是否相等

    --decode(数值|列,值1,值1时输出的结果,值2,值2时输出的结果。。。)

    --case 列名 when 条件 then 动作 else end结束

    ---------------
    select comm 原值,nvl(comm,0) 为null显示0不为null显示原值 from emp;

    --求员工年薪(null不能直接运算符一起使用,否则结果为null)
    select ename,job,sal,comm,(sal+nvl(comm,0))*12 年薪 from emp;

    ·

    --nvl2(comm,comm,0)如果comm不为null则显示comm,为null则显示0
    select comm,nvl2(comm,comm,0) from emp;

    select  sal,comm,(sal+nvl(comm,0))*12 年薪,nvl2(comm,sal+comm,sal)*12 年薪  from emp;

    --nullif(表达式一,表达式二)如果表达式一等于表达式二则返回null,如果表达式一不等表达式二则返回表达式一
    select ename,job,length(ename),length(job),nullif(length(ename),length(job)) nullif判断结果
    from emp;

    --decode(数值|列,值1,值1时输出的结果,值2,值2时输出的结果)
    --值为1时输出one,值为2时输入two
    select decode(2,1,'one',2,'two') 此时值为2 ,
    decode(1,1,'one',2,'two') 此时值为1
    from dual;

    --decode job列的工作为CLERK时输出业务员,工作为SALESMAN时输出销售。。。。

    select ename,job,decode(job,
    'CLERK','业务员',
    'SALESMAN','销售',
    'PRESIDENT','LD',
    'MANAGER','经理',
    'ANALYST','ana'
    )  职位类别
    from emp;

    --case when then 当工作为clerk时工资涨20%工作为salesman时涨30%。。。end表示case的结束

    select ename,job,sal,
    case job
    when 'CLERK' then sal*1.2
    when 'SALESMAN' then sal*1.3
    when 'MANAGER' then sal*1.4
    else
    sal*1.1
    end 工资增长后
    from emp;

  • 相关阅读:
    Python3.x和Python2.x的区别
    python 列表 元组 字典
    Wireshark TCP报文到达确认(ACK)机制
    Wireshark Tcp三次握手
    Python Vim配置 Win7x64
    Workstation guest fails to restart or resume
    python 枚举目录下所有子目录和文件,输出列表
    Python按行读文件 高级
    python 注释
    十一、设备初始化(ADK4.0)
  • 原文地址:https://www.cnblogs.com/joeshang/p/10710969.html
Copyright © 2011-2022 走看看