oracle中的NVL,NVL2,NULLIF,COALESCE几个通用函数
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。
下面简单介绍一下几个函数的用法。
在介绍这个之前你必须明白什么是oracle中的空值null
1.NVL函数
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
例如:
SQL> select ename,NVL(comm, -1) from emp;
ENAME NVL(COMM,-1)
——————– ————
SMITH -1
ALLEN 300
WARD 500
JONES -1
MARTIN 1400
BLAKE -1
FORD -1
MILLER -1
其中显示-1的本来的值全部都是空值的
2 NVL2函数
NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。
SQL> select ename,NVL2(comm,-1,1) from emp;
ENAME NVL2(COMM,-1,1)
——————– —————
SMITH 1
ALLEN -1
WARD -1
JONES 1
MARTIN -1
BLAKE 1
CLARK 1
SCOTT 1
上面的例子中。凡是结果是1的原来都不为空,而结果是-1的原来的值就是空。
3. NULLIF函数
NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。
下面是一个例子。使用的是oracle中HR schema,如果HR处于锁定,请启用
这里的作用是显示出那些换过工作的人员原工作,现工作。
SQL> SELECT e.last_name, e.job_id,j.job_id,NULLIF(e.job_id, j.job_id) “Old Job ID”
from employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name;
LAST_NAME JOB_ID JOB_ID Old Job ID
————————————————– ——————– ——————– ——————–
De Haan AD_VP IT_PROG AD_VP
Hartstein MK_MAN MK_REP MK_MAN
Kaufling ST_MAN ST_CLERK ST_MAN
相关文档:
SQL中的单记录函数
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2.CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from ......
ASM
ASM可以条带化和镜像磁盘,因此可以在数据库备加载的情况下添加、删除磁盘、以及自动平衡IO。
ASM不是一个文件系统,所以无法从操作系统访问ASM存储的文件,对于使用ASM的数据库只能用RMAN进行备份和恢复。
ASM作为单独的ORACLE实例实施,只有ASM运行时数据库才能访问。
一、磁盘组
ASM提供了三中磁盘组类 ......
ORACLE主要由两部分组成:Instance和Database。Instance是指一组后台进程/线程和一块共享内存区域,而Database是指存储在磁盘上的一组物理文件。
ORACLE数据库的启动主要分3个步骤:
1、启动到nomount状态;
2、启动到mount状态;
3、启动到open状态。
下面分析一下启动的各个步骤:
一、启动到nomount状态
......
跟着这几天Oracle OpenWorld大会的举行,Oracle11g的新特征越来越多的被展现出来。
以前,我曾经引见过Oracle11g将可能在10月份的这个大会上推出,当初至于Alpha版的信息已经可以见到,现时出现的已经是Beta版,离Oracle11g的正式版已经不远。
Laurent Schneider 在他的Blog中谈到,对于Oracle11g的名字还 ......
SQL*Loader 用于将大量数据装入数据库。
⑴、定宽数据
创建数据文件control.txt:
aaa,bbb
ccc,ddd
eee,fff
创建控制文件control.ctl:
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 position(1:3) char,
m2 position(5:7) char)
批量加载数据:
sqlldr tester/test control=c:\loade ......