Oracle通用函数

--------------------------------------------Oracle通用函数--------------------------------------------------

1.空值处理nvl

范例:查询所有的雇员的年薪

我们发现很多员工的年薪是空的,原因是很多员工的奖金是null,null和任何数值计算都是null,这时我们可以使用nvl来处理。

2.Decode函数

该函数类似if....else if...esle

语法:DECODE(col/expression, [search1,result1],[search2,result2]....[default])

Col/expression:列名或表达式

Search1,search2...:用于比较的条件

Result1, result2...:返回值

如果col/expression和Searchi匹配就返回resulti,否则返回default的默认值

范例:查询出所有雇员的职位的中文名

3.case when

CASE expr WHEN comparison_expr1 THEN return_expr1

         [WHENcomparison_expr2 THEN return_expr2

          WHENcomparison_exprn THEN return_exprn

          ELSE else_expr]

END

select t.empno,

       t.ename,

       case

         when t.job = 'CLERK'then

          '业务员'

         when t.job = 'MANAGER'then

          '经理'

         when t.job = 'ANALYST'then

          '分析员'

         when t.job = 'PRESIDENT'then

          '总裁'

         when t.job = 'SALESMAN'then

          '销售'

          else

            '无业'

       end

  from emp t

 代码示例:

select * from emp

select ename,sal*12,nvl(comm,0) from emp --空值和数值计算最后会得到空,使用nvl(带有空值得列表, 代替空值得数)来将空转换为数值

select ename,sal*12+nvl(comm,0) from emp --计算员工的年薪

select decode(1,1,'我是1',2,'我是2','其他') from dual --分支查询,第一个参数为要查询的参数,第二个参数是匹配的参数,第三个参数为匹配后的结果

select ename,

       decode(job,

              'CLERK',

              '业务员',

              'SALESMAN',

              '推销员',

              'MANAGER',

              '经理',

              'ANALYST',

              '分析员',

              'PRESIDENT',

              '总裁',

              '无业') cjob

  from emp --将员工的工作用中文显示

 

select ename,

       case

         when job = 'CLERK' then

          '业务员'

         when job = 'SALESMAN' then

          '推销员'

         when job = 'MANAGER' then

          '经理'

         when job = 'ANALYST' then

          '分析员'

         when job = 'PRESIDENT' then

          '总裁'

         else

          '无业'

       end cjob

  from emp --将员工的工作用中文显示

猜你喜欢

转载自blog.csdn.net/weixin_41547486/article/details/80465371
今日推荐