説明
この関数は、条件の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 より小さく、NULLを含むデータを検索します。
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