如果我运行查询,例如:
SELECT COUNT(*) as num FROM table WHERE x = 'y'
Run Code Online (Sandbox Code Playgroud)
它是否总是返回结果,即使查询与任何记录都不匹配?或者我是否需要验证并确保返回一行作为结果?
我有一个表,其中一个字段包含一个整数或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) 我从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。