説明
この関数は、条件の1つまたは2つのオペランドがNULLになる可能性がある場合に、その判断方法を提供します。条件をパラメータとして指定し、条件がFALSEまたはUNKNOWNの場合はTRUEを返し、条件がTRUEの場合はFALSEを返します。
この関数はWHERE句で使用できるほか、CASE式のWHEN条件としても使用できます。
構文
LNNVL (condition)
パラメータの説明
conditionは判断条件を指します。例えば、a = 2、bの値がNULLの場合、次の表はLNNVL関数の戻り値を示しています。
| 条件 | 条件判定結果 | LNNVL戻り値 |
|---|---|---|
a = 1 |
FALSE |
TRUE |
a = 2 |
TRUE |
FALSE |
a IS NULL |
FALSE |
TRUE |
b = 1 |
UNKNOWN |
TRUE |
b IS NULL |
TRUE |
FALSE |
a = b |
UNKNOWN |
TRUE |
戻り値のタイプ
ブール値のTRUEまたはFALSEを返します。
例
テーブルtbl1を作成し、5件のデータを挿入します。列col2の50未満で空のデータを含むデータを照会します。
obclient> CREATE TABLE tbl1 (col1 INT,col2 INT);
Query OK, 0 rows affected
obclient> INSERT INTO tbl1 VALUES (1,30),(2,null),(3,50),(4,80),(5,10);
Query OK, 5 rows affected
Records: 5 Duplicates: 0 Warnings: 0
obclient> SELECT * FROM tbl1 WHERE LNNVL(col2 >= 50);
+------+------+
| COL1 | COL2 |
+------+------+
| 1 | 30 |
| 2 | NULL |
| 5 | 10 |
+------+------+
3 rows in set