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)

含义是:假如该函数的第一个参数为空那么显示expr3参数的值,假如第一个参数的值不为空,则显示expr2参数的值。

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

Kochhar AD_VP AC_MGR AD_VP

Kochhar AD_VP AC_ACCOUNT AD_VP

Raphaely PU_MAN ST_CLERK PU_MAN

Taylor SA_REP SA_MAN SA_REP

Taylor SA_REP SA_REP

Whalen AD_ASST AC_ACCOUNT AD_ASST

Whalen AD_ASST AD_ASST

可以看到凡是employee。job_id和job_histroy.job_id相等的,都会在结果中输出NULL即为空,否则显示的是employee。job_id

4.Coalesce函数

Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。

格式如下:

Coalesce(expr1, expr2, expr3….. exprn)

Coalesce是这样来处理这些参数的。假如第一个参数为空,则看第二个参数是否是空,否则则显示第一个参数,假如第二个参数是空再看第三个参数是否为空,否则显示第二个参数,依次类推。

这个函数实际上是NVL的循环使用
时间: 2024-11-29 09:45:12

NVL,NVL2,NULLIF,COALESCE的相关文章

oracle几个函数整理 DECODE() NVL NVL2 NULLIF Coalesce(转)

DECODE() decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的column, ·含义解释: decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的理解如下: if (条件==值1) th

函数nvl,nvl2,nullif,coalesce

NVL: Converts a null value to an actual valueNVL2:If expr1 is not null, NVL2 returns expr2. If expr1 is null, NVL2 returns expr3. The argument expr1 can have any data type.NULLIF:Compares two expressions and returns null if they are equal; returns th

oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO

干oracle 047文章12当问题,经验group by 声明.因此邂逅group by  rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPORT等一下. 1. decode  与if...then,case...when...这类流数据语句功能差点儿相同 decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义例如以下: IF 条件=值1 THEN RETURN(值1) ELSIF 条件=值2 TH

ORACLE 函数 NVL, NVL2, NULLIF

NULL指的是空值,或者非法值. 1.NVL(expr1, expr2)函数 expr1为NULL,返回expr2:不为NULL,返回expr1.注意两者的类型要一致 eg:SELECT NVL(column,0) FROM DUAL --column的值为null,则显示为0 2.NVL2(expr1, expr2, expr3) expr1不为NULL,返回expr2:为NULL,返回expr3.expr2和expr3类型不同的话,expr3会转换为expr2的类型 eg:SELECT NV

PLSQL_基础系列6_判断操作NVL / NULLIF / COALESCE / NVL2

2014-12-08 BaoXinjian 一.摘要 下列函数可用于任何数据类型,且适合使用空值的场合:NVL (expr1, expr2)NVL2 (expr1, expr2, expr3)NULLIF (expr1, expr2)COALESCE (expr1, expr2, ..., exprn) 二.案例 - NVL 1. NVL函数的格式如下:NVL(expr1,expr2) 2. 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数

oracle nvl,nvl2,coalesce几个函数的区别

1.nvl(exp1,exp2) NVL lets you replace null (returned as a blank) with a string in the results of a query. If expr1 is null, then NVL returns expr2. If expr1 is not null, then NVL returnsexpr1. 该函数是处理表达式中的空值:假设表达式exp1是空值,则该函数返回表达式exp2的值, 假设表达式exp1没有是空

oracle中的nvl(), nvl2()函数

nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值. 注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数. 例子: nvl(to_char(some_numeric),’some string’) --其中some_numeric指某个数据类型的值. 例如: nvl(y

SQL中isnull,nullif,coalesce的用法

ISNULL是判断是否为NULL 而NULLIF是把值换成NULL COALESCE是用别的来代替NULL SELECT employee_id,first_name,last_name,NULLIF (SALES_QUOTA,-1) as Quota FROM employees 就是把-1变成 NULL COALESCE(表达式1,表达式2,....表达式n) 从前到后,谁不是NULL就显示谁 Select employee_id,first_name,last_name, COALESCE

nvl函数 oracle

Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简单介绍一下几个函数的用法. 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值. 例如: SQL> sel