2016 - 2024

感恩一路有你

Oracle中常用的COALESCE、NVL、NVL2和NULLIF函数

浏览量:4988 时间:2024-08-19 14:32:32 作者:采采

在Oracle数据库中,有许多函数可以进行数据处理和转换。其中,COALESCE、NVL、NVL2和NULLIF函数是常用的四种函数之一。

COALESCE函数

COALESCE函数用于返回其参数中第一个非空表达式。它的语法如下:

COALESCE(expression [, ...n])

其中,expression表示要检查的表达式,n可以指定多个表达式,所有表达式必须是相同类型。COALESCE函数返回第一个不为空的值,如果所有表达式均为空,则返回空。下面是一个示例:

SELECT COALESCE(null, null, 'test', null, 'example') as result FROM dual;

运行结果为:

RESULT

-------

test

在这个例子中,COALESCE函数被用于比较多个空值和一个非空值,它返回了第一个非空值。

NVL函数

NVL函数用于返回两个表达式的非空值。它的语法如下:

NVL(expression1, expression2)

其中,expression1表示要检查的表达式,expression2是默认值。如果expression1不为空,则返回expression1,否则返回expression2。expression1和expression2必须是相同类型,或者可以隐式转换为相同类型。下面是一个示例:

SELECT NVL(10, 0) as result FROM dual;

运行结果为:

RESULT

-------

10

在这个例子中,NVL函数被用于比较一个非空值和一个默认值,它返回了非空值。

NVL2函数

NVL2函数根据表达式是否为空,返回不同的值。它的语法如下:

NVL2(expression1, expression2, expression3)

其中,expression1表示要检查的表达式,expression2是当expression1不为空时返回的值,expression3是当expression1为空时返回的值。expression2和expression3类型不同的话,expression3会转换为expression1的类型。下面是一个示例:

SELECT NVL2(null, 'not null', 'null') as result FROM dual;

运行结果为:

RESULT

-------

null

在这个例子中,NVL2函数被用于比较一个空值和一个非空值,它返回了空值。

NULLIF函数

NULLIF函数根据表达式是否相等,返回不同的内容。它的语法如下:

NULLIF(expression1, expression2)

其中,expression1表示要检查的表达式,expression2是要比较的值。如果expression1和expression2相等,则返回空值,否则返回expression1的值,并且expression1不能为空。下面是一个示例:

SELECT NULLIF('test', 'test') as result FROM dual;

运行结果为:

RESULT

-------

null

在这个例子中,NULLIF函数被用于比较两个相等的值,它返回了空值。

总结

本文介绍了Oracle中常用的COALESCE、NVL、NVL2和NULLIF函数,并给出了相关的语法和示例。这些函数可以帮助我们在处理数据时更加灵活和高效。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。