SQL 中的 IFNULL和NULLIF

Posted 翔云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 中的 IFNULL和NULLIF相关的知识,希望对你有一定的参考价值。

sql 中的IFNULL和NULLIF很容易混淆,在此记录一下。

IFNULL

IFNULL(expression1, expression2)

如果expression1为null, 在函数返回expression2,否则将返回expression1。

例如

mysql> select IFNULL(0,"a");
+---------------+
| IFNULL(0,"a") |
+---------------+
| 0             |
+---------------+
1 row in set (0.00 sec)

第一个参数是0,不是NULL,所以结果是0.

再例如,

mysql> select IFNULL(NULL,"a");
+------------------+
| IFNULL(NULL,"a") |
+------------------+
| a                |
+------------------+
1 row in set (0.00 sec)

mysql>

第一个参数是NULL,所以结果是第二个参数"a"。

NULLIF

IFNULL(expression1, expression2)

如果两个参数等价,则返回NULL ;否则,返回第一个参数。

例如

mysql> select NULLIF(1,2);
+-------------+
| NULLIF(1,2) |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

两个参数不相等,所以结果是第一个参数1。

再例如,

mysql> select NULLIF(1,1);
+-------------+
| NULLIF(1,1) |
+-------------+
|        NULL |
+-------------+
1 row in set (0.00 sec)

两个参数相等,所以结果是NULL。

以上是关于SQL 中的 IFNULL和NULLIF的主要内容,如果未能解决你的问题,请参考以下文章

mysql几个常用的判空函数:isnull, ifnull, nullif, coalesce

MySQL 的IFNULL()ISNULL()和NULLIF()函数

MySQL-ISNULL()IFNULL()和NULLIF()函数

MySQLMySQL的IFNULL()ISNULL()NULLIF()函数用法说明

MySQLMySQL的IFNULL()ISNULL()NULLIF()函数用法说明

nvl、nvl2、nullif、coalesce函数的区别