`
chenhua_1984
  • 浏览: 1251985 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

oracle 基础知识:两个number列相加

阅读更多

1查看表结构

SQL> desc teachers;
Name          Type        Nullable Default Comments
------------- ----------- -------- ------- --------
TEACHER_ID    NUMBER(5)                            
NAME          VARCHAR2(8)                          
TITLE         VARCHAR2(6) Y                        
HIRE_DATE     DATE        Y        sysdate         
BONUS         NUMBER(7,2) Y                        
WAGE          NUMBER(7,2) Y                        
DEPARTMENT_ID NUMBER(3)   Y

2查看表的数据

SQL> select * from teachers;
 
TEACHER_ID NAME     TITLE  HIRE_DATE       BONUS      WAGE DEPARTMENT_ID
---------- -------- ------ ----------- --------- --------- -------------
     10101 王彤     教授   1990/9/1      1000.00   3000.00           101
     10104 孔世杰   副教授 1994/7/6       800.00   2700.00           101
     10103 邹人文   讲师   1996/1/21      600.00   2400.00           101
     10106 韩冬梅   助教   2002/8/1       500.00   1800.00           101
     10210 杨文化   教授   1989/10/3     1000.00   3100.00           102
     10206 崔天     助教   2000/9/5       500.00   1900.00           102
     10209 孙晴碧   讲师   1998/5/11      600.00   2500.00           102
     10207 张珂     讲师   1997/8/16      700.00   2700.00           102
     10308 齐沈阳   高工   1989/10/3     1000.00   3100.00           103
     10306 车东日   助教   2001/9/5       500.00   1900.00           103
     10309 臧海涛   工程师 1999/6/29      600.00   2400.00           103
     10307 赵昆     讲师   1996/2/18      800.00   2700.00           103
     10128 王晓            2007/9/5                       1000.00           101
     10328 张笑            2007/9/29                     1000.00           103
     10228 赵天宇          2007/9/18                    1000.00           102
     11111 林飞            2007/10/11                   1000.00

3计算教师月收入,基本工资+奖金

SQL> select t.name as "姓名", t.bonus+t.wage as "月总收入" from teachers t;
 
姓名           月总收入
-------- ----------
王彤           4000
孔世杰         3500
邹人文         3000
韩冬梅         2300
杨文化         4100
崔天           2400
孙晴碧         3100
张珂           3400
齐沈阳         4100
车东日         2400
臧海涛         3000
赵昆           3500
王晓    
张笑    
赵天宇  
林飞    
 
16 rows selected

 

这里可以看到,在奖金为NULL的列上,虽然都为number类型,但这位老师的月收入为空了。显然是不对的。oracle没有默认的实现这个功能。

 

这个时候需要我们采用nvl函数来给列设置默认值,假如是空的,默认为零

 

SQL> select t.name as "姓名", nvl(t.bonus,0)+t.wage as "月总收入" from teachers t;
 
姓名           月总收入
-------- ----------
王彤           4000
孔世杰         3500
邹人文         3000
韩冬梅         2300
杨文化         4100
崔天           2400
孙晴碧         3100
张珂           3400
齐沈阳         4100
车东日         2400
臧海涛         3000
赵昆           3500
王晓           1000
张笑           1000
赵天宇         1000
林飞           1000
 
16 rows selected

 

这样就对了。

还可以使用nvl2函数

SQL> select t.name as "姓名" ,nvl2(t.bonus,t.bonus+t.wage,t.wage) as "总收入" from teachers t;
 
姓名            总收入
-------- ----------
王彤           4000
孔世杰         3500
邹人文         3000
韩冬梅         2300
杨文化         4100
崔天           2400
孙晴碧         3100
张珂           3400
齐沈阳         4100
车东日         2400
臧海涛         3000
赵昆           3500
王晓           1000
张笑           1000
赵天宇         1000
林飞           1000
 
16 rows selected

 

还可以利用coalesce函数(返回表达式中第一个非空值,如果都为空,则返回为空)来计算教师的月收入:

SQL> select t.name as "姓名" ,nvl2(t.bonus,t.bonus+t.wage,t.wage) as "总收入" from teachers t;
 
姓名            总收入
-------- ----------
王彤           4000
孔世杰         3500
邹人文         3000
韩冬梅         2300
杨文化         4100
崔天           2400
孙晴碧         3100
张珂           3400
齐沈阳         4100
车东日         2400
臧海涛         3000
赵昆           3500
王晓           1000
张笑           1000
赵天宇         1000
林飞           1000
 
16 rows selected

 

 

分享到:
评论

相关推荐

    将oracle数据库某张表的某两列相加并插入新的一列记录

    在公司实际的项目开发中,我遇到这样一个需求,需要将oracle数据库某张表的某两列相加形成新的一列。

    oracle 基础知识总结初学者必备

    通过以上介绍,我们可以看出Oracle的基础知识非常丰富且实用,涵盖了从数据定义到数据操作,再到数据控制等多个方面。初学者应该系统地学习这些内容,以便更好地理解和应用Oracle数据库技术。此外,熟悉这些基本概念...

    oracle 基础知识整理

    总结,Oracle基础知识涵盖了数据库架构、数据类型、SQL操作、表空间管理以及备份恢复策略等多个方面。掌握这些基础知识对于理解和使用Oracle数据库至关重要,有助于构建高效稳定的企业级数据环境。

    Oracle优化日记:一个金牌DBA的故事(第一、二部)

    两本书籍结合,构成了一个完整的Oracle优化知识体系,不仅适合初级DBA作为入门指南,也对有经验的数据库管理员有很高的参考价值。通过阅读,读者不仅能学习到具体的优化技术,还能了解到如何在实践中应用这些知识,...

    oracle基础知识回顾与练习.zip

    本资料“oracle基础知识回顾与练习.zip”是针对Oracle数据库的基础知识进行整理,采用纯SQL语句的形式,适合初学者及需要巩固基础的用户进行学习和实践。 1. SQL基础 SQL(Structured Query Language)是用于管理...

    oracle 基础知识测试 及答案

    - 外键(Foreign Key):关联两个表的列,引用另一个表的主键。 5. 视图(View)与存储过程(Stored Procedure): - 视图:虚拟表,基于一个或多个表的查询结果,提供数据的逻辑视图。 - 存储过程:预编译的SQL...

    oracle数据库基础知识

    这是我学习过程中整理的oracle数据库基础知识,里面包含了DML、DDL等相关语句。还解释了什么情况下该用什么样的SQL。包含了很多基础知识。欢迎大家收藏。

    oracle基础资料学习oracle的来下

    oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料

    Oracle基础知识

    "Oracle基础知识"涵盖了SQL语言的基本概念以及Oracle 10G版本的相关特性。以下将详细介绍这些知识点。 首先,SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。SQL基础包括以下几个部分...

    大话Oracle RAC:集群、高可用性、备份与恢复

    全书分为两个部分,共14章,第1部分是集群理论篇,这部分从集群基础知识入手,通过分析集群环境和单机环境的不同,介绍了集群环境的各个组件及其作用,以及集群环境的一些专有技术,包括Oracle Clusterware、Oracle ...

    oracle基础知识

    oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识oracle基础知识...

    Oracle基础知识概述.pptx

    Oracle基础知识概述 ...Oracle基础知识概述为读者提供了一个完整的Oracle知识体系,涵盖了数据库概念、Oracle发展史、Oracle基础知识、安装和卸载等方面的内容,为读者学习和应用Oracle提供了一个良好的基础。

    oracle dba基础知识

    Oracle DBA基础知识是数据库管理的重要领域,特别是在Oracle数据库系统中,DBA(Database Administrator)的角色至关重要。本篇文章将深入探讨Oracle DBA所必备的基础知识,包括Oracle的体系结构、内存结构、后台...

    关于Oracle数据库的一些基础知识

    本文将深入探讨Oracle数据库的一些基础知识,包括它的功能、常用操作以及学习路径。 一、Oracle数据库函数大全 Oracle数据库支持丰富的函数,用于处理各种数据类型和执行复杂的计算。以下是一些常见的函数类别: ...

    oracle基础知识简介及安装卸载的详细图例说明

    "oracle10基础知识"这个文件可能包含了这些内容,你可以进一步查看来深入了解Oracle10g的安装和管理。 总结,Oracle数据库的学习是一个系统的过程,涵盖了从基础理论到实际操作的多个层面。了解Oracle的基本概念和...

    Oracle 基础知识总结

    以下是对Oracle基础知识的详细总结: 第一章:Oracle概述 Oracle数据库是Oracle公司的产品,提供了一整套数据管理解决方案。它支持多种操作系统平台,如Windows、Linux、Unix等。Oracle采用SQL作为查询语言,并提供...

    +Oracle数据库基础知识讲义ppt(共80页).ppt

    2.1 Oracle数据库简介 了解 2.2 Oracle数据库安装与配置 了解 2.3 Oracle数据库体系结构 了解 2.4 SQL*Plus 掌握 数据库体系结构 物理存储结构:用于描述数据库的数据在物理磁盘上的组织方式。 逻辑存储结构:...

    ORACLE基础知识学习-PPT

    ORACLE基础知识学习 ORACLE基础知识学习

Global site tag (gtag.js) - Google Analytics