Mysql 有人能给出使用SQL汇总空值的一般规则吗?

Mysql 有人能给出使用SQL汇总空值的一般规则吗?,mysql,Mysql,因此,我们试图用有意义的内容替换“WITH ROLLUP”创建的空值(在本例中,替换为meaningfull值1),并观察到一种奇怪的行为(可能也可以在*Sql DB中尝试) 查询: 那么这里的一般规则是什么 解释: 我们在这里所做的是使用不同的方法用有意义的东西替换最后一行中的NULL值,但是有些方法失败,有些方法工作,这些方法在不同的MySQL版本中稳定吗?其他sql方言是什么?我对mysql db v5.5.28的这种任意行为感到困惑 SELECT IF(a <=>

因此,我们试图用有意义的内容替换“WITH ROLLUP”创建的空值(在本例中,替换为meaningfull值1),并观察到一种奇怪的行为(可能也可以在*Sql DB中尝试)

查询:

那么这里的一般规则是什么

解释:

我们在这里所做的是使用不同的方法用有意义的东西替换最后一行中的NULL值,但是有些方法失败,有些方法工作,这些方法在不同的MySQL版本中稳定吗?其他sql方言是什么?我对mysql db v5.5.28的这种任意行为感到困惑

SELECT
    IF(a <=> NULL, 1, a) as v1,
    IF( a IS NULL, 1, a ) as v2,
    IF( a IS NOT NULL, a, 1 ) as v3,
    IF( ISNULL(a), 1, a ) as v4,
    IF( !ISNULL(a), a, 1 ) as v5,
    IF( !!ISNULL(a), 1, a ) as v6,
    IFNULL( a, 1 ) as v7
FROM
    (SELECT 1 as a) as tmp
GROUP BY
    a WITH ROLLUP
+------+------+------+------+------+------+------+
| v1   | v2   | v3   | v4   | v5   | v6   | v7   |
+------+------+------+------+------+------+------+
|    0 |    0 |    0 |    0 |    0 |    0 |    0 |
|    1 | NULL |    1 | NULL |    1 | NULL |    1 |
+------+------+------+------+------+------+------+