ORACLE NVL 和 NVL2 函数的使用

NVL函数是一个空值转换函数,在SQL查询中主要用来处理null值。在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。
Oracle在NVL函数的功能上扩展,提供了NVL2函数,使得不论目标值是否为null都能返回自定义的值。

操作方法

  • 01

    1.NVL ( ) 语法:nvl(expr1,expr2) 如果 expr1 是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr1 。 说明:参数 expr1、expr2 可以是任何数据类型,但应该保持相同。若两者数据类型不一致,则Oracle数据库会隐式的转换其中一个的数据类型使其保持和另一个一致,若无法转换则会返回错误。隐式转换的实施规则如下: (1)若 expr1 是字符数据,则Oracle数据库在比较之前就会把 expr2 转换成 expr1 的数据类型并且返回 VARCHAR2 数据类型到 expr1 的字符集。 (2) 若 expr1 是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。 实例:返回员工姓名和奖金,若该员工没有奖金则返回 Not Applicable

  • 02

    2.NVL2 ( ) 语法:nvl2(expr1,expr2,expr3) 如果 expr1 不是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr3 。参数可以返回任何数据类型的值,但是 expr2 和 expr3 不能是 LONG 型的数据类型。 说明:若 expr2 和 expr3 的数据类型不同: (1)若 expr2 是字符数据,则Oracle数据库在比较之前就会把 expr3 转换成 expr2 的数据类型除非 expr3 是null。在 这种情况下,隐式数据转换是不必要的。Oracle数据库返回 VARCHAR2 数据类型到 expr2 的字符集。 (2) 若 expr2 是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。 实例:返回员工收入,看员工收入(income)是否由工资(salary)加奖金(commission)组成,这取决于commission_pct列是否为null

(0)

相关推荐

  • Oracle SUBSTR和SUBSTRB函数的用法?

    SUBSTR(c1,n1[,n2]) [功能]截取子字符串 [说明]多字节符(汉字.全角符等),按1个字符计算 [参数]在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束 ...

  • Oracle中的COALESCE,NVL,NVL2,NULLIF函数

    操作方法 01 COALESCE COALESCE函数用于返回其参数中第一个非空表达式. 语法:COALESCE(expression [ ,...n ]) 参数: expression 表达式 n ...

  • Oracle函数大全之字符型函数

    Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.到目前仍在数据库市场上占有主要份额.劳伦斯·埃里森和他的朋友,之前的同事Bob ...

  • 数据库获取当前时间

    对于程序开发人员来说,经常要跟数据库打交道,在数据库的操作中时间是我们经常遇到的,下面描述一下常用的数据库如何获取当前时间,分别以Oracle.mysql.db2等常用数据库进行说明. 操作方法 01 ...

  • Oracle报错 不是单组分组函数怎么解决

    Oracle报错 不是单组分组函数怎么解决 报错:不是单组分组函数 实例:select dummy,count(dummy) from dual ; 报错:不是单组分组函数 原因: 如果程序中使用了分 ...

  • oracle函数row_number() over ( )的简单使用

    对于oracle的系统函数row_number() over (partition by para1 order by col1[col2...] [desc|asc]) 的简单用法 操作方法 01 ...

  • oracle decode函数使用方法

    decode()函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能. 操作方法 01 DECODE函数是ORA ...

  • Oracle函数大全之日期函数

    Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.到目前仍在数据库市场上占有主要份额.劳伦斯·埃里森和他的朋友,之前的同事Bob ...

  • ORACLE SQL语句优化技术分析

    为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。 一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用I ...