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

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

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

例如

mysql> select IFNULL(0,“a”);
±--------------+
| IFNULL(0,“a”) |
±--------------+
| 0 |
±--------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
第一个参数是0,不是NULL,所以结果是0.

再例如,

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

mysql>
1
2
3
4
5
6
7
8
9
第一个参数是NULL,所以结果是第二个参数"a"。

NULLIF
NULLIF(expression1, expression2)
1
如果两个参数等价,则返回NULL ;否则,返回第一个参数。

例如

mysql> select NULLIF(1,2);
±------------+
| NULLIF(1,2) |
±------------+
| 1 |
±------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
两个参数不相等,所以结果是第一个参数1。

再例如,

mysql> select NULLIF(1,1);
±------------+
| NULLIF(1,1) |
±------------+
| NULL |
±------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
两个参数相等,所以结果是NULL。
————————————————
版权声明:本文为CSDN博主「翔云123456」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lanyang123456/article/details/84728019

你可能感兴趣的:(sql 中的IFNULL和NULLIF很容易混淆,在此记录一下)