説明
この関数は、入力値のパラメータ 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 の場合、
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パラメータのうち1つが NULL の場合、
NULLを返します。obclient> SELECT NANVL('',1),NANVL(2,'') FROM DUAL; +-------------+-------------+ | NANVL('',1) | NANVL(2,'') | +-------------+-------------+ | NULL | NULL | +-------------+-------------+ 1 row in set