説明
この関数は、入力値パラメータ n1 が NaN (非数値を示す) であるかどうかを判断し、結果を返します。
n1がNaNの場合、パラメータn2を返します。n1がNaNでない場合、パラメータn1を返します。注意
この関数は
BINARY_FLOATまたはBINARY_DOUBLEデータ型にのみ適用されます。
構文
NANVL(n1,n2)
パラメータの説明
| パラメータ | 説明 |
|---|---|
| n1 | 数値データ型(BINARY_FLOAT、BINARY_DOUBLE)に属するか、または数値データ型へ暗黙的に型変換できる式。 |
| n2 | 数値データ型(BINARY_FLOAT、BINARY_DOUBLE)に属するか、または数値データ型へ暗黙的に型変換できる式。 |
戻り値のタイプ
いずれかのパラメータのタイプが
BINARY_DOUBLEの場合、BINARY_DOUBLEデータ型を返します。すべてのパラメータのタイプが
BINARY_FLOATの場合、BINARY_FLOATデータ型を返します。いずれかのパラメータが空の場合、
NULLを返します。
例
テーブル
tbl1を作成し、テストデータを挿入します。列col2が数値の場合は元の値を返し、そうでない場合は0を返します。obclient> CREATE TABLE tbl1 (col1 NUMBER(10,2), col2 BINARY_DOUBLE, col3 BINARY_FLOAT); Query OK, 0 rows affected obclient> INSERT INTO tbl1 VALUES(1,1,1),(2,'NaN',2),(3,3,'NaN'); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0 obclient> SELECT * FROM tbl1; +------+----------+----------+ | COL1 | COL2 | COL3 | +------+----------+----------+ | 1 | 1.0E+000 | 1.0E+000 | | 2 | Nan | 2.0E+000 | | 3 | 3.0E+000 | Nan | +------+----------+----------+ 3 rows in set obclient> SELECT col2,NANVL(col2,0) FROM tbl1; +----------+---------------+ | COL2 | NANVL(COL2,0) | +----------+---------------+ | 1.0E+000 | 1.0E+000 | | Nan | 0 | | 3.0E+000 | 3.0E+000 | +----------+---------------+ 3 rows in setパラメータのいずれかが空の場合、
NULLを返します。obclient> SELECT NANVL('',1),NANVL(2,'') FROM DUAL; +-------------+-------------+ | NANVL('',1) | NANVL(2,'') | +-------------+-------------+ | NULL | NULL | +-------------+-------------+ 1 row in set