一、介绍:
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函数 nvl( ) 函数 从两个表达式返回一个非null 值。 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpression2 如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。...
通过学习将Oracle和Hive的常用函数整理出来做了个对比,提供他们各自支持的常用函数。
在Oracle数据库中,NVL函数是一个非常实用的功能,主要用于处理NULL值。其基本语法如下: ``` NVL(expression1, expression2) ``` 其中: - `expression1`:是要检查是否为NULL的表达式。 - `expression2`:如果`...
除了上述函数,Oracle还提供其他很多函数,如TO_DATE用于将字符串转换为日期,TO_CHAR用于将日期转换为字符串,NVL用于处理NULL值,以及COUNT、SUM、AVG、MAX、MIN等聚合函数。了解并熟练使用这些函数,能极大地提高...
5. 条件函数:如IFNULL(如果为空则替换)、NVL(空值替换)、DECODE(根据条件返回值)等,处理可能出现的空值情况。 6. 聚合函数:如COUNT(计数)、SUM(求和)、AVG(平均值)、MAX/MIN(最大值/最小值)等,...
NVL函数是Oracle数据库中的一个非常实用的函数,其主要功能是处理NULL值。当查询结果中的某个字段值为NULL时,NVL函数可以提供一个默认值来替代NULL。其基本语法为`NVL(expression, replacement_value)`。`...
Oracle内置函数是数据库管理系统Oracle中不可或缺的一部分,它们用于执行各种数据处理任务,包括数学运算、字符串操作、日期处理等。这篇博文将深入探讨Oracle内置函数的学习,帮助你更好地理解和运用这些功能强大的...
1. **NVL函数** `NVL(expr1, expr2)` 是一个非常常用的函数,它的作用是当`expr1`为NULL时,返回`expr2`的值,否则返回`expr1`的值。这里的`expr1`和`expr2`都应该是相同的数据类型,以确保返回值的类型一致性。在...
Oracle 函数大全 Oracle 函数大全是 Oracle 数据库管理系统中的一系列函数,用于处理和操作数据。这些函数可以分为两大类:单行函数和组函数。 单行函数 单行函数用于处理单行数据,在 SELECT、WHERE、ORDER BY ...
Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效。以下是对Oracle内置函数的详细概述: 1. **数学函数**: - `ABS(x)`:返回x的绝对值。 - `...
6. **控制结构函数**:如`IFNULL`或`NVL`用于处理空值,`DECODE`实现条件判断。 深入学习Oracle内置函数不仅能够提高SQL查询的效率,还能帮助开发人员编写出更高效、更简洁的存储过程和触发器。通过“Oracle内置...
20. NVL函数:如果表达式为NULL,则返回第二个参数的值。NVL(NULL, 'default')将返回'default'。 以上仅是Oracle数据库中80个常用函数的一部分,实际使用中还有许多其他功能强大的函数,如日期函数、数学函数、转换...
Oracle数据库是世界上最广泛使用的数据库系统之一,其内置函数是实现高效数据处理的关键工具。这篇文档“oracle内置函数大全”提供了一个全面的参考,适合数据库管理员、开发人员以及初学者使用。下面将详细介绍...
Oracle的NVL函数用于处理NULL值,其语法为`NVL(Expr1, Expr2)`。这个函数的基本逻辑是:如果`Expr1`的值为NULL,那么NVL函数返回`Expr2`的值;否则,它返回`Expr1`的原始值。如果`Expr1`和`Expr2`同时为NULL,NVL...
以上只是一部分Oracle内置函数的示例,实际上还有许多其他函数,如TO_CHAR、TO_DATE、TO_NUMBER、NVL、DECODE等,它们分别用于日期格式化、类型转换、空值处理和条件判断等操作。掌握这些函数能帮助我们更有效地在...
Oracle 中有一个非常实用的函数 `NVL`,用于处理空值(NULL)的情况。那么,在 MySQL 中,是否也有类似的函数呢?答案是肯定的,MySQL 提供了 `IFNULL` 函数,它与 Oracle 的 `NVL` 函数具有相似的功能。 `NVL` ...
这段代码使用了NVL函数来确保`SUM(c.f_factplan)`的结果即使为NULL也能返回0。 ##### 2. TO_CHAR 函数 TO_CHAR 函数用于将日期或数值转换为字符。 - **语法**: ```sql TO_CHAR(date_or_numeric_expr, format_...
NVL函数用于处理NULL值,它将检查提供的表达式是否为NULL,如果是,它将返回第二个参数的值。基本语法为: ```sql NVL(expression, replacement_value) ``` - `expression`:可能为NULL的表达式。 - `...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和...