06-oracle 通用函数

Posted joeshang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于06-oracle 通用函数的主要内容,如果未能解决你的问题,请参考以下文章

Oracle系列:(11)通用函数和条件判断函数

如何在 BigQuery 中实现通用 Oracle DECODE 函数?

oracle单行函数 之 通用函数

需要支持 Oracle 和 DB2 的通用日期函数

Oracle04基本查询+条件查询+排序+单行函数+通用函数介绍

Oracle通用函数,分组函数,子查询