相关疑难解决方法(0)

COUNT(*)总是返回结果吗?

如果我运行查询,例如:

SELECT COUNT(*) as num FROM table WHERE x = 'y'
Run Code Online (Sandbox Code Playgroud)

它是否总是返回结果,即使查询与任何记录都不匹配?或者我是否需要验证并确保返回一行作为结果?

mysql sql aggregate

31
推荐指数
3
解决办法
1万
查看次数

使用IFNULL将NULL设置为零

我有一个表,其中一个字段包含一个整数或NULL.

parent_id
2
4
6
NULL
NULL
45
2
Run Code Online (Sandbox Code Playgroud)

我将如何添加一个IFNULL语句,以便ans_count填充0而不是NULL

这是我的SQL代码:

...
(SELECT parent_id AS pid, COUNT(*) AS ans_count
   FROM qa
  GROUP BY parent_id) AS n
Run Code Online (Sandbox Code Playgroud)

UPDATE

完整的SQL下面 - 感谢您的耐心等待.

SELECT  *
FROM    qa
        JOIN user_profiles
          ON user_id = author_id
        LEFT JOIN (SELECT cm_id,
                          cm_author_id,
                          id_fk,
                          cm_text,
                          cm_timestamp,
                          first_name AS cm_first_name,
                          last_name AS cm_last_name,
                          facebook_id AS cm_fb_id,
                          picture AS cm_picture
                    FROM  cm
                    JOIN  user_profiles
                      ON  user_id = cm_author_id) AS c
          ON id …
Run Code Online (Sandbox Code Playgroud)

mysql sql ifnull

6
推荐指数
1
解决办法
1万
查看次数

当Count(*)结果为Null时,返回1而不是0

我从SQL Server获得的代码:

SELECT ESTAGIO.SK_ESTAGIO, ISNULL(count(ESTAGIO.SK_ESTAGIO), 0) as how_many
 from ESTAGIO
 left join ESTAGIARIO
 on ESTAGIARIO.SK_ESTAGIO = ESTAGIO.SK_ESTAGIO
 group by
    ESTAGIO.SK_ESTAGIO
Run Code Online (Sandbox Code Playgroud)

当“ ESTAGIARIO”表中不存在“ ESTAGIO.SK_ESTAGIO”时,它返回1而不是0,我已经尝试使用ISNULL(),NULLIF()和COALESCE(),但仍然找不到造成该问题的方法上面的查询在应为0时返回1。

sql count sql-server-2012

4
推荐指数
1
解决办法
885
查看次数

标签 统计

sql ×3

mysql ×2

aggregate ×1

count ×1

ifnull ×1

sql-server-2012 ×1