Oracle中nvl函数的用法

NVL函数:

空值处理函数。可以将为空的列,以不为空的形式显示出来

将一个null值转换为一个实际的值

因为null值的特点:不参加计算,不参加统计,与任何数字相加都为空。

一个数字-null=一个数

null- 一个数字=null

一个数+null=null

格式为:  NVL( string1, replace_with)

功能:如果string1为NULL或者是空字符串'',则NVL函数返回replace_with的值,否则返回string1的值。

注意事项:

1、所判断的参数string1包括NULL和‘’这两种形式的空值

2、数据类型必须匹配,即string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。

 

例:NVL(TO_CHAR(numeric_column), 'some string')

其中numeric_column代指某个数字类型的值。   

 

nvl能够转换任何数据类型,但是转换的数据类型返回值必须是nvl(expr1,expr2)第一个参数expr的类型。如:date,number, varchar2 or char

 

例:nvl(txnAmt,0) > 0   NVL(txnAmt, 0) 的意思是 如果 交易金额txnAmt 是NULL, 则取 0值

 

nvl函数的扩展:nvl2函数 

nvl2(expr1,expr2,expr3)的功能为:如果expr1不是null,则返回expr2;

如果expr1是null,则返回expr3。

参数expr1可以是任意数据类型,而expr2和expr3可以是除long之外的任何数据类型。但注意,expr2、expr3的数据类型必须要与expr1的数据类型匹配。

猜你喜欢

转载自wjlvivid.iteye.com/blog/1609795
今日推荐