Oracle NANVL() 函数使用指南
Oracle NANVL()
是一个内置函数,它允许您为值为 NaN
的参数提供一个默认值,它只适用于 BINARY_FLOAT
和 BINARY_DOUBLE
。
Oracle NANVL()
语法
这里是 Oracle NANVL()
函数的语法:
NANVL(num1, num2)
参数
num1
-
必需的。
num2
-
必需的。
num1
和 num2
可以是何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型。
返回值
如果 num1
是 NaN
, Oracle NANVL(num1, num2)
函数返回 num2
,否则返回 num1
。
如果任意一个参数为 NULL
, NANVL()
将返回 NULL
。
Oracle NANVL()
示例
这里有几个展示了 Oracle NANVL()
函数用法的示例。
基本用法
SELECT
NANVL(1, 2)
FROM dual;
输出:
NANVL(1,2)
_____________
1
NaN
您可以使用 BINARY_FLOAT_NAN
和 BINARY_DOUBLE_NAN
作为 NaN
:
SELECT
NANVL(BINARY_FLOAT_NAN, 1),
NANVL(BINARY_DOUBLE_NAN, 1)
FROM dual;
输出:
NANVL(BINARY_FLOAT_NAN,1) NANVL(BINARY_DOUBLE_NAN,1)
____________________________ _____________________________
1.0 1.0
或者,您可以使用 0F/0
产生一个 NaN
:
SELECT
NANVL(0F/0, 1)
FROM dual;
输出:
NANVL(0F/0,1)
________________
1.0
NULL 参数
如果任意一个参数为 NULL
, NANVL()
将返回 NULL
。
SET NULL 'NULL';
SELECT
NANVL(1, NULL),
NANVL(NULL, 1),
NANVL(NULL, NULL)
FROM dual;
输出:
NANVL(1,NULL) NANVL(NULL,1) NANVL(NULL,NULL)
________________ ________________ ___________________
NULL NULL NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle NANVL()
是一个内置函数,它允许您为值为 NaN
的参数提供一个默认值,它只适用于 BINARY_FLOAT
和 BINARY_DOUBLE
。