`
tingshu
  • 浏览: 34422 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle的Nvl函数

阅读更多

一、介绍:

nvl( ) 函数

从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数
eExpression1, eExpression2

如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要匹配

 

二、使用:

 

 select   h.site, NVL(TO_NUMBER(h.ticketSum),0) as ticketSum, NVL(TO_NUMBER(h.totalTax),0) as totalTax, 
                      NVL(TO_NUMBER(j.refundTktSum),0) as refundTktSum, NVL(TO_NUMBER(j.refundTax),0) as refundTax, 
                      NVL(TO_NUMBER(j.refundFee),0) as refundFee,  
                     (NVL(TO_NUMBER(h.ticketSum),0) +  NVL(TO_NUMBER(h.totalTax),0) - NVL(TO_NUMBER(j.refundTktSum),0) - NVL(TO_NUMBER(j.refundTax),0) + NVL(TO_NUMBER(j.refundFee),0)) as totalSum
 
    from  
                (select a.site, a.ticketSum, b.totalTax  from (select  sum(t.pay_amount) as ticketSum,t.site  from ord_tkt t where 1=1 group by t.site) a 
		     join  (select sum(NVL(TO_NUMBER(m.TAX_AMT1),0) + NVL(TO_NUMBER(m.TAX_AMT2),0) + NVL(TO_NUMBER(m.TAX_AMT3),0) + NVL(TO_NUMBER(m.TAX_AMT4),0) + NVL(TO_NUMBER(m.TAX_AMT5),0)  + NVL(TO_NUMBER(m.TAX_AMT6),0) + NVL(TO_NUMBER(m.TAX_AMT7),0) + NVL(TO_NUMBER(m.TAX_AMT8),0) + NVL(TO_NUMBER(m.TAX_AMT9),0) + NVL(TO_NUMBER(m.TAX_AMT10),0)  + NVL(TO_NUMBER(m.TAX_AMT11),0) + NVL(TO_NUMBER(m.TAX_AMT12),0) + NVL(TO_NUMBER(m.TAX_AMT13),0) + NVL(TO_NUMBER(m.TAX_AMT14),0) + NVL(TO_NUMBER(m.TAX_AMT15),0)) as totalTax, t.site  from ord_tax m, ord_tkt t  where 1=1  and t.ord_no=m.ord_no and t.pax_id = m.pax_id   group by t.site) b  
	               on a.site=b.site) h 
left join    (select c.site,c.refundTax, d.refundFee, e.refundTktSum  from 
                                 (select sum(NVL(TO_NUMBER(m.TAX_AMT1),0) + NVL(TO_NUMBER(m.TAX_AMT2),0) + NVL(TO_NUMBER(m.TAX_AMT3),0) + NVL(TO_NUMBER(m.TAX_AMT4),0) + NVL(TO_NUMBER(m.TAX_AMT5),0)  + NVL(TO_NUMBER(m.TAX_AMT6),0) + NVL(TO_NUMBER(m.TAX_AMT7),0) + NVL(TO_NUMBER(m.TAX_AMT8),0) + NVL(TO_NUMBER(m.TAX_AMT9),0) + NVL(TO_NUMBER(m.TAX_AMT10),0)  + NVL(TO_NUMBER(m.TAX_AMT11),0) + NVL(TO_NUMBER(m.TAX_AMT12),0) + NVL(TO_NUMBER(m.TAX_AMT13),0) + NVL(TO_NUMBER(m.TAX_AMT14),0) + NVL(TO_NUMBER(m.TAX_AMT15),0)) as refundTax, t.site  from rfnd_inter_trfd m, ord_tkt t, rfnd_apply n  where 1=1  and t.rfnd_app_id= m.rfnd_app_id and t.pax_id = m.pax_id and t.rfnd_app_id = n.ID and n.ORD_NO = t.ORD_NO group by t.site) c,
				 (select sum(NVL(TO_NUMBER(m.RFND_FEE),0)) as refundFee, t.site   from rfnd_inter_trfd m, ord_tkt t, rfnd_apply n  where 1=1  and t.rfnd_app_id= m.rfnd_app_id and t.pax_id = m.pax_id and t.rfnd_app_id = n.ID and n.ORD_NO = t.ORD_NO group by site) d,
				 (select sum(NVL(TO_NUMBER(m.TAX_AMT1),0) + NVL(TO_NUMBER(m.RFND_FEE),0)+  - (NVL(TO_NUMBER(m.TAX_AMT1),0) + NVL(TO_NUMBER(m.TAX_AMT2),0) + NVL(TO_NUMBER(m.TAX_AMT3),0) + NVL(TO_NUMBER(m.TAX_AMT4),0) + NVL(TO_NUMBER(m.TAX_AMT5),0)  + NVL(TO_NUMBER(m.TAX_AMT6),0) + NVL(TO_NUMBER(m.TAX_AMT7),0) + NVL(TO_NUMBER(m.TAX_AMT8),0) + NVL(TO_NUMBER(m.TAX_AMT9),0) + NVL(TO_NUMBER(m.TAX_AMT10),0)  + NVL(TO_NUMBER(m.TAX_AMT11),0) + NVL(TO_NUMBER(m.TAX_AMT12),0) + NVL(TO_NUMBER(m.TAX_AMT13),0) + NVL(TO_NUMBER(m.TAX_AMT14),0) + NVL(TO_NUMBER(m.TAX_AMT15),0))) as refundTktSum, t.site  from rfnd_inter_trfd m, ord_tkt t, rfnd_apply n where 1=1  and t.rfnd_app_id= m.rfnd_app_id and t.pax_id = m.pax_id and t.rfnd_app_id = n.ID and n.ORD_NO = t.ORD_NO group by t.site) e 
		 where c.site=d.site and c.site=e.site ) j 
       on     h.site = j.site 
 
分享到:
评论

相关推荐

    oracle的nvl函数的使用介绍

    Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值。 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpression2 如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。...

    Hive与Oracle常用函数对比

    通过学习将Oracle和Hive的常用函数整理出来做了个对比,提供他们各自支持的常用函数。

    oracle中nvl、decode、trim、rtrim的常见用法

    在Oracle数据库中,NVL函数是一个非常实用的功能,主要用于处理NULL值。其基本语法如下: ``` NVL(expression1, expression2) ``` 其中: - `expression1`:是要检查是否为NULL的表达式。 - `expression2`:如果`...

    oracle函数大全 oracle函数大全

    除了上述函数,Oracle还提供其他很多函数,如TO_DATE用于将字符串转换为日期,TO_CHAR用于将日期转换为字符串,NVL用于处理NULL值,以及COUNT、SUM、AVG、MAX、MIN等聚合函数。了解并熟练使用这些函数,能极大地提高...

    oracle 函数大全 参考函数 手册 速查 chm格式

    5. 条件函数:如IFNULL(如果为空则替换)、NVL(空值替换)、DECODE(根据条件返回值)等,处理可能出现的空值情况。 6. 聚合函数:如COUNT(计数)、SUM(求和)、AVG(平均值)、MAX/MIN(最大值/最小值)等,...

    oracle 函数大全整理

    NVL函数是Oracle数据库中的一个非常实用的函数,其主要功能是处理NULL值。当查询结果中的某个字段值为NULL时,NVL函数可以提供一个默认值来替代NULL。其基本语法为`NVL(expression, replacement_value)`。`...

    oracle内置函数学习

    Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期处理等。这篇博文将深入探讨Oracle内置函数的学习,帮助你更好地理解和运用这些功能强大的...

    nvl的相关函数描述

    1. **NVL函数** `NVL(expr1, expr2)` 是一个非常常用的函数,它的作用是当`expr1`为NULL时,返回`expr2`的值,否则返回`expr1`的值。这里的`expr1`和`expr2`都应该是相同的数据类型,以确保返回值的类型一致性。在...

    oracle函数大全.doc

    Oracle 函数大全 Oracle 函数大全是 Oracle 数据库管理系统中的一系列函数,用于处理和操作数据。这些函数可以分为两大类:单行函数和组函数。 单行函数 单行函数用于处理单行数据,在 SELECT、WHERE、ORDER BY ...

    oracle 内置函数大全

    Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效。以下是对Oracle内置函数的详细概述: 1. **数学函数**: - `ABS(x)`:返回x的绝对值。 - `...

    Oracle内置函数大全.rar

    6. **控制结构函数**:如`IFNULL`或`NVL`用于处理空值,`DECODE`实现条件判断。 深入学习Oracle内置函数不仅能够提高SQL查询的效率,还能帮助开发人员编写出更高效、更简洁的存储过程和触发器。通过“Oracle内置...

    80个oracle常用函数总结

    20. NVL函数:如果表达式为NULL,则返回第二个参数的值。NVL(NULL, 'default')将返回'default'。 以上仅是Oracle数据库中80个常用函数的一部分,实际使用中还有许多其他功能强大的函数,如日期函数、数学函数、转换...

    oracle内置函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其内置函数是实现高效数据处理的关键工具。这篇文档“oracle内置函数大全”提供了一个全面的参考,适合数据库管理员、开发人员以及初学者使用。下面将详细介绍...

    深入浅析Orcale的nvl函数和SQL Server的isnull函数

    Oracle的NVL函数用于处理NULL值,其语法为`NVL(Expr1, Expr2)`。这个函数的基本逻辑是:如果`Expr1`的值为NULL,那么NVL函数返回`Expr2`的值;否则,它返回`Expr1`的原始值。如果`Expr1`和`Expr2`同时为NULL,NVL...

    ORACLE内置函数大全

    以上只是一部分Oracle内置函数的示例,实际上还有许多其他函数,如TO_CHAR、TO_DATE、TO_NUMBER、NVL、DECODE等,它们分别用于日期格式化、类型转换、空值处理和条件判断等操作。掌握这些函数能帮助我们更有效地在...

    浅谈mysql可有类似oracle的nvl的函数

    Oracle 中有一个非常实用的函数 `NVL`,用于处理空值(NULL)的情况。那么,在 MySQL 中,是否也有类似的函数呢?答案是肯定的,MySQL 提供了 `IFNULL` 函数,它与 Oracle 的 `NVL` 函数具有相似的功能。 `NVL` ...

    几个常用的Oracle函数及实例运用

    这段代码使用了NVL函数来确保`SUM(c.f_factplan)`的结果即使为NULL也能返回0。 ##### 2. TO_CHAR 函数 TO_CHAR 函数用于将日期或数值转换为字符。 - **语法**: ```sql TO_CHAR(date_or_numeric_expr, format_...

    Oracle中的INSTR,NVL和SUBSTR函数的用法详解

    NVL函数用于处理NULL值,它将检查提供的表达式是否为NULL,如果是,它将返回第二个参数的值。基本语法为: ```sql NVL(expression, replacement_value) ``` - `expression`:可能为NULL的表达式。 - `...

    oracle常用函数 CHM

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和...

Global site tag (gtag.js) - Google Analytics