P3C规范

五、MySQL数据库 (三) SQL语句

【强制】不要使用count(列名)或count(常量)来替代count(),count()是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。 说明:count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行。【强制】count(distinctcol)计算该列除NULL之外的不重复行数,注意count(distinctcol1,
  1. 【强制】不要使用count(列名)或count(常量)来替代count(),count()是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。 
    说明:count(*)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行。

  2. 【强制】count(distinct col) 计算该列除NULL之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为NULL,那么即使另一列有不同的值,也返回为0。

  3. 【强制】当某一列的值全是NULL时,count(col)的返回结果为0,但sum(col)的返回结果为NULL,因此使用sum()时需注意NPE问题。 
    正例:可以使用如下方式来避免sum的NPE问题:

    SELECT IF(ISNULL(SUM(g)),0,S

原创不易,完成人机校验,阅读全文

相关推荐