`
孔雀王子
  • 浏览: 42218 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

Oracle 10g数据库管理、应用与开发(六)

阅读更多

5、通用函数 这些函数适用于任何数据类型,同时也适用于空值:

NVL (expr1, expr2)

NVL2 (expr1, expr2, expr3)

NULLIF (expr1, expr2)

COALESCE (expr1, expr2, ..., exprn)

nvl() 将空值转换成一个已知的值:

      可以使用的数据类型有日期、字符、数字。函数的一般形式:

   NVL(commission_pct,0)

   NVL(hire_date,'01-JAN-97')

   NVL(job_id,'No Job Yet')

//将comm为null替换成0
SQL> select empno,ename,job,mgr,hiredate,sal,nvl(comm,0),deptno from  emp;
//在上面的基础上将日期为空替换成给定的日期
SQL>select empno,ename,job,mgr,nvl(hiredate,to_date('2011-1-10','YYYY-MM-DD')),sal,nvl(comm,0),deptno from  emp;
//在上面的基础上将job为空替换成redarmy
SQL> select empno,ename,nvl(job,'redarmy'),mgr,nvl(hiredate,to_date('2011-1-10','YYYY-MM-DD')),sal,nvl(comm,0),deptno from  emp;
//计算出员工在该月的工资=(薪资+奖金)
SQL> select empno,ename,job,mgr,hiredate,(nvl(sal,0)+nvl(comm,0)) as "工资",deptno from  emp;
NVL2 (expr1, expr2, expr3) : expr1不为NULL,返回expr2;为NULL,返回expr3。
   相当于:expr1!=null?exrp2:expr3;
//计算员工的工资
SQL> select empno,ename,job,mgr,hiredate,nvl2(comm,sal+comm,sal) as "工资",deptno from  emp;
NULLIF (expr1, expr2) :  相等返回NULL,不等返回expr1 
//注意观察理解
SQL> select ename as "expr1",job as "expr2",nullif(length(ename),length(job)) from  emp;
	COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值。 
	如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE 。 
SQL> select empno,ename,job,mgr,hiredate,coalesce(comm,sal,10000) as "salll", deptno from  emp;

   理解:单行函数可以嵌套。嵌套函数的执行顺序是由内到外。

6、条件表达式 :IF-THEN-ELSE 逻辑

CASE expr WHEN comparison_expr1 THEN return_expr1

         [WHEN comparison_expr2 THEN return_expr2

          WHEN comparison_exprn THEN return_exprn

          ELSE else_expr]

END

DECODE(col|expression, search1, result1

           [, search2, result2,...,]

           [, default])

//为职位是Manager的员工 发放5000元的奖金
SQL> select ename,job,case job when 'MANAGER' then nvl(sal,0)+5000  end  as "工资" from emp;
//员工的工资
SQL> select ename ,job,
  2  case job when 'MANAGER' then nvl(sal,0)+5000+nvl(comm,0)
  3  else nvl(sal,0)+nvl(comm,0)
  4  end
  5  from emp;
//改写成 decode的写法
SQL> select ename,job
  2  ,decode(job,'MANAGER', nvl(sal,0)+5000+nvl(comm,0),
  3  'CLERK',nvl(sal,0)+nvl(comm,0)+200,
  4  nvl(sal,0)+nvl(comm,0)) as "工资"
  5  from emp;

 

分享到:
评论

相关推荐

    Oracle 10g数据库管理、应用与开发标准教程

    由浅入深地介绍了Oracle 10g系统的使用方法和基本管理。...本书全面介绍使用Oracle数据库管理应用与开发知识,适合作为普通高校计算机专业Oracle教材,也可以作为Oracle数据库开发和应用人员的参考资料。

    Oracle10g数据库管理与应用系统开发光盘

    Oracle10g数据库管理系统是...以上是Oracle10g数据库管理系统的主要知识点,对于数据库管理与应用系统开发有着深远的影响。通过学习和掌握这些内容,可以有效地管理和开发高效、稳定、安全的Oracle数据库应用系统。

    ORACLE 10G数据库管理、应用与开发标准教程

    ORACLE 10G数据库管理、应用与开发标准教程

    Oracle 10g 数据库管理 应用与开发 标准教程 课后答案

    Oracle 10g数据库管理系统是企业级数据库解决方案,广泛应用于数据存储和管理。本教程主要涵盖了数据库的管理和开发,通过课后习题帮助学习者巩固理论知识和实践技能。以下是基于提供的部分章节内容展开的详细知识点...

    Oracle 10g数据库管理与应用系统开发.iso

    web开发学习的必备技术之一,软件开发的参考文档,熟能生巧,不久,自学者就能应用的得心应手,成为web开发的一位高手,也为网站制作爱好者的首选学习资料,专业,详细,全面,一份资料胜几分不够专业的资料文档,...

    oracle 10g数据库管理应用教程习题答案

    Oracle 10g数据库管理系统是Oracle公司推出的一款强大的关系型数据库产品,被广泛应用于企业级的数据存储、管理和分析。在“Oracle 10g数据库管理应用教程”这本教材中,作者马晓玉深入浅出地讲解了Oracle 10g的诸多...

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle 11g中文版数据库管理、应用与开发标准教程

    Oracle 11g数据库系统设计、开发、管理与应用

    《Oracle 11g数据库系统设计、开发、管理与应用》是一本全面涵盖Oracle数据库技术的专业教程,适合数据库管理员(DBA)、开发人员以及对Oracle技术感兴趣的学者学习。PDF格式的书籍便于电子阅读和存储,使得读者可以...

    Oracle 10g 数据库管理 应用与开发 标准教程 课后习题答案

    以上总结了《Oracle10g数据库管理应用与开发》一书中的部分知识点,包括Oracle数据库的物理与逻辑存储结构、SQL语言的基础语法、数据操作方法以及数据库对象的管理等内容。这些知识点对于学习和掌握Oracle数据库的...

    Oracle10g数据库管理 应用与开发 标准教程 课后简答题

    ### Oracle10g数据库管理应用与开发标准教程关键知识点解析 #### 表空间与数据文件的关系 在Oracle10g数据库管理系统中,表空间(Tablespace)与数据文件(Datafile)之间的关系至关重要。表空间作为数据库逻辑上...

    oracle10g数据库管理应用与开发课后答案借鉴.pdf

    Oracle 10g 数据库管理应用与开发课后答案借鉴.pdf 资源摘要信息涵盖了 Oracle 10g 数据库管理和开发相关的知识点,以下是该资源的详细说明: 物理存储结构 Oracle 数据库系统的物理存储结构主要由三个文件组成:...

    Oracle10g数据库管理与应用系统开发光盘.rar

    总结,Oracle 10g数据库管理系统为数据库管理员和开发者提供了强大的工具和特性,从高性能的数据存储到灵活的应用系统开发,再到可靠的灾难恢复机制,都是其突出亮点。理解并熟练掌握这些知识点,对于在Oracle环境中...

    Oracle 9i10g 数据库管理详细

    ### Oracle 9i/10g 数据库管理详细知识点 #### 一、Oracle 9i/10g 概述 - **Oracle 9i** 和 **Oracle 10g** 是Oracle公司推出的两个重要的数据库管理系统版本。这些版本在企业级数据库管理领域具有重要意义。 - *...

    Oracle10g数据库管理应用开发标准教程习题.docx

    Oracle 10g 数据库管理应用开发标准教程习题 本文档主要介绍 Oracle 10g 数据库管理应用开发标准教程习题,涵盖了数据库管理、物理存储结构、逻辑存储结构、实例系统、SQL 语言等方面的知识点。 物理存储结构 ...

    Oracle 10g 数据库管理 应用开发 标准教程 思考与练习.pdf

    "Oracle 10g 数据库管理应用开发标准教程思考与练习.pdf" 本资源是 Oracle 10g 数据库管理应用开发标准教程的思考与练习指南,旨在帮助读者深入了解 Oracle 数据库管理和应用开发的基本概念和技术。本资源主要涵盖 ...

    ORACLE 10G FORMS BUILDER WEB数据库开发与应用_11474943

    该内容为电子书ORACLE 10G FORMS BUILDER WEB数据库开发与应用_11474943,此电子书为高清版本

    Oracle+10g+数据库管理艺术

    Oracle 10g数据库管理系统是Oracle公司发布的一款重要的数据库产品,尤其在企业级应用中广泛使用。本资料集“Oracle 10g 数据库管理艺术”深入探讨了Oracle 10g版本中的核心特性和管理技巧,旨在帮助数据库管理员...

    Oracle 10g 数据库管理 应用开发 标准教程 思考与练习.docx

    Oracle 10g 数据库管理应用开发标准教程思考与练习 本资源主要集中在 Oracle 10g 数据库管理、应用开发和标准教程的思考与练习中。该资源涵盖了 Oracle 数据库的物理存储结构、逻辑存储结构、实例系统、服务器模式...

    《Oracle 10g数据库管理》源代码-2881

    Oracle 10g数据库管理系统是Oracle公司发布的一款企业级数据库产品,它在数据库管理、性能优化、安全性以及可扩展性方面都有显著的提升。对于Oracle编程人员来说,掌握Oracle 10g的相关知识和源代码至关重要,这有助...

Global site tag (gtag.js) - Google Analytics