- 浏览: 1257997 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
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
发表评论
-
存储过程的授权和删除
2012-04-12 17:05 2256当建立一个存储过程或函数后,默认情况下只有创建者和DBA才 ... -
ORACLE 中的SQLPLUS 的SHOW ERRORS
2012-04-05 15:54 2675在sqlplus 中 sql> show ... -
sqlplus的spool命令
2012-04-05 15:06 1529有时候我们想把SQLPLUS的会话输出保存到文件中 ... -
sqlplus 的@符号
2012-04-05 14:16 1908通常我们把ORACLE开发的PLSQL保存成文件,比如. ... -
oracle 的exp和imp命令
2012-03-31 15:23 2089我们通常要对ORACLE的数据进行导入,导出,在没有expdb ... -
oracle的sqlnet.ora,tnsnames.ora,listener.ora的理解
2012-03-31 14:45 20911 oracle中3个比较常用的配置文件 tnsna ... -
oracle 统计一个表格有多少列
2011-12-19 16:48 3175ResultSetMetaData rsMetaData ... -
TNS-12535: TNS: 操作超时
2011-09-02 12:37 2565新安装的linux虚拟机,上面装了ORACLE10G,装好后在 ... -
oracle killsession
2011-08-31 10:09 1240一条语句结束oracle的多个会话 select 'a ... -
oracle建立database link
2011-04-24 08:33 1072建立oracle database link 的命令 实 ... -
plsql编程学习之游标一
2011-04-12 20:39 2915oralce plsql编程的游标 游标分类 1显示游 ... -
plsql的异常处理部分学习整理
2011-04-10 13:01 6025ORACLE的PLSQL编程,异常 ... -
PLSQL开发基础--结构控制
2011-04-07 19:24 1519--匿名块 set serveroutput on; be ... -
oracle10g 的sqlplus的新特性
2011-03-21 09:58 1226在使用oracle9i的sqlplus时候我们不知道当前登录的 ... -
oracle10g下的OEM的异常
2011-03-08 14:45 1479重新安装了oracle10g在笔记本上,当网络环境发生变化时容 ... -
oracle glogin.sql和login.sql
2011-03-01 16:52 3346oracle数据库安装好之后,默认在oracle_home下面 ... -
aix下面oracle用户的环境变量
2011-03-01 15:47 10249在AIX上安装oracle11g,需要oracle账号,修改. ... -
windows7下的oracle10.2.0.1
2011-01-12 14:58 1480近日oracle网站推 ... -
oracle substr,instr用法
2011-01-07 11:36 2759Oracle中INSTR的用法: INSTR方法的格式为 ... -
oracle中用户的权限
2011-01-07 11:18 11511.查看所有用户: select * from dba_ ...
相关推荐
### Oracle常用的算术符号总结 #### 一、概述 Oracle是一种广泛使用的数据库管理系统,它提供了...这些基础知识对于任何想要深入学习Oracle数据库的人来说都是不可或缺的。希望本篇文章能对Oracle初学者有所帮助。
2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 谓语前推 42 2.10 使用物化视图...
这些运算符用于进行基本的数学计算,例如,两个数值的相加或相乘。 2. **比较运算符**:如>(大于)、<(小于)、=(等于)、>=(大于等于)、(小于等于)、!=(不等于),以及IN、BETWEEN AND、IS NULL、LIKE等。...
例如,我们可以使用以下代码将两个变量相加并打印结果: ```sql BEGIN var1 := 5; var2 := 10; DBMS_OUTPUT.PUT_LINE('Sum: ' || (var1 + var2)); END; ``` PL/SQL中的异常处理部分使用`EXCEPTION`关键字来捕获和...
### JavaScript 学习笔记知识点概览 #### 一、JavaScript 概述 - **JavaScript**是一种**基于对象和事件驱动**的脚本语言,主要应用于客户端...希望这份学习笔记能够帮助大家更好地理解和掌握 JavaScript 的基础知识。