锅炉信息网 > 锅炉知识 > 锅炉百科

NANVL函数

发布时间:

NANVL函数语法:NANVL(n2, n1)功能介绍:nanvl函数只针对浮点数binary_float或binary_double有效,如果n2是一个NAN(不是一个数值),该

NANVL函数

语法:NANVL(n2, n1)

功能介绍:

nanvl函数只针对浮点数binary_float或binary_double有效,如果n2是一个NAN(不是一个数值),该函数使数据库返回一个可替换的值n1,如果n2不是NAN,则返回n2。

这个函数参数接收任何数值类型或者能隐式转换为数值类型的非数值类型数据。Oracle确定参数最高数值优先级,隐式转换剩余的数据类型为该类型,然后返回该类型的数据。

注:NaN只能插入到binary_double和binary_float类型的字段中。

最高数值优先级说明:

对于支持数值类型的操作,如果该操作包含不同数值类型,那么最高数值优先级确定数据类型,binary_double有最高的数值优先级,接下来是binary_float,最后是number,因此,在任何有多个数值的操作中:

  • 任意操作数类型为binary_double,则Oracle会将所有操作数隐式转换为binary_double,然后再执行相关操作。
  • 如果没有操作数类型为binary_double,但是有操作数类型为binary_float,则Oracle将所有操作数隐式转换为binary_float,然后再执行相关操作。
  • 除此之外,Oracle尝试将所有的操作数转换为数值类型,然后再执行相关操作。

在其他数据类型的上下文中,数值数据类型的优先级低于datetime/interval数据类型,而高于字符和所有其他数据类型。

例子:

SQL> CREATE TABLE float_point_demo(dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT);nnTable created.nnSQL> INSERT INTO float_point_demo VALUES (0,'NaN','NaN');nn1 row created.nnSQL> SELECT * FROM float_point_demo;nn DEC_NUM BIN_DOUBLE BIN_FLOATn---------- ---------- ----------n 0 Nan Nan

下面的例子,如果bin_float是一个数字,则返回bin_float。否则返回0。

SQL> SELECT bin_float, NANVL(bin_float,0) FROM float_point_demo;nn BIN_FLOAT NANVL(BIN_FLOAT,0)n---------- ------------------n Nan 0nnSQL> SELECT bin_double, NANVL(bin_double,0) FROM float_point_demo;nnBIN_DOUBLE NANVL(BIN_DOUBLE,0)n---------- -------------------n Nan 0

上一篇:navicat 应用

下一篇:Mac安装Navicat

精选推荐

  • 711关东煮供应商
    711关东煮供应商

    今天给大家介绍三位,奶粉,全家、罗森这些便利店里关东煮的供应商。店里卖三四块钱一串的关东煮,在网上买不到,一块钱就搞定。首先关东

  • 健康日历|高压锅容易爆炸的4个原因
    健康日历|高压锅容易爆炸的4个原因

    来源:医药养生保健报设计:李雅琴医学审核:姜峰出品人:胡丽丽

  • 高炉
    高炉

    今天这活却是个白事,等到了时辰,那家人便准备火化,本来准备送普炉,我却心中一动,便对那家人说道:“这老人走也不要省,还是送高炉吧。”

  • 高压锅和电压力锅的区别,推荐几款点压力锅
    高压锅和电压力锅的区别,推荐几款点压

    记得之前有一次去朋友家玩,他正在用高压锅煮小米粥,是的,高压锅压小米粥,大概煮了半小时,高压锅突然爆炸了,现场惨不忍睹啊,幸好厨房里没

0