mysql case when 为什么会出现null

img

mysql中case when 中返回结果为什么会出现null? 怎么办 ?        这个结果为什么会是null?  

你的country和when里的条件没一个等同的啊

  • 这篇博客: 《MySQL 入门教程》第 13 篇 CASE 表达式与控制流函数中的 13.5 NULLIF 函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • NULLIF(expr1,expr2) 函数的处理逻辑如下:如果表达式 expr1 和 expr2 相等,返回 NULL;否则,返回 expr1 的值。NULLIF 函数可以使用等价的 CASE 表达式进行表示:

    CASE
      WHEN expr1 = expr2 THEN NULL
      ELSE expr1
    END
    

    NULLIF 函数的一个常见用途是防止除零错误:

    -- 除零错误
    select 1 / 0; 
    
    select 1 / nullif(0 , 0);
    
    

    第一个语句会产生除零错误(MySQL 可能只产生警告而不是错误);第二个语句返回 NULL。