NANVL函數(shù)
NANVL函數(shù)語(yǔ)法:NANVL(n2, n1)功能介紹:nanvl函數(shù)只針對(duì)浮點(diǎn)數(shù)binary_float或binary_double有效,如果n2是一個(gè)NAN(不是一個(gè)數(shù)值),該
NANVL函數(shù)
語(yǔ)法:NANVL(n2, n1)
功能介紹:
nanvl函數(shù)只針對(duì)浮點(diǎn)數(shù)binary_float或binary_double有效,如果n2是一個(gè)NAN(不是一個(gè)數(shù)值),該函數(shù)使數(shù)據(jù)庫(kù)返回一個(gè)可替換的值n1,如果n2不是NAN,則返回n2。
這個(gè)函數(shù)參數(shù)接收任何數(shù)值類型或者能隱式轉(zhuǎn)換為數(shù)值類型的非數(shù)值類型數(shù)據(jù)。Oracle確定參數(shù)最高數(shù)值優(yōu)先級(jí),隱式轉(zhuǎn)換剩余的數(shù)據(jù)類型為該類型,然后返回該類型的數(shù)據(jù)。
注:NaN只能插入到binary_double和binary_float類型的字段中。
最高數(shù)值優(yōu)先級(jí)說(shuō)明:
對(duì)于支持?jǐn)?shù)值類型的操作,如果該操作包含不同數(shù)值類型,那么最高數(shù)值優(yōu)先級(jí)確定數(shù)據(jù)類型,binary_double有最高的數(shù)值優(yōu)先級(jí),接下來(lái)是binary_float,最后是number,因此,在任何有多個(gè)數(shù)值的操作中:
- 任意操作數(shù)類型為binary_double,則Oracle會(huì)將所有操作數(shù)隱式轉(zhuǎn)換為binary_double,然后再執(zhí)行相關(guān)操作。
- 如果沒(méi)有操作數(shù)類型為binary_double,但是有操作數(shù)類型為binary_float,則Oracle將所有操作數(shù)隱式轉(zhuǎn)換為binary_float,然后再執(zhí)行相關(guān)操作。
- 除此之外,Oracle嘗試將所有的操作數(shù)轉(zhuǎn)換為數(shù)值類型,然后再執(zhí)行相關(guān)操作。
在其他數(shù)據(jù)類型的上下文中,數(shù)值數(shù)據(jù)類型的優(yōu)先級(jí)低于datetime/interval數(shù)據(jù)類型,而高于字符和所有其他數(shù)據(jù)類型。
例子:
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是一個(gè)數(shù)字,則返回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 應(yīng)用
下一篇:Mac安裝Navicat







