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()函数用法说明