Mysql 从结果中删除空值
我有下面的问题。 如何从查询结果中删除空值? 这样就只剩下一行了Mysql 从结果中删除空值,mysql,Mysql,我有下面的问题。 如何从查询结果中删除空值? 这样就只剩下一行了 SELECT CASE WHEN department = 'РФ' THEN avg_time END AS `РФ`, CASE WHEN department = 'ЕС' THEN avg_time END AS `ЕС`, CASE WHEN department = 'Аутсорс' THEN avg_time END AS `Аутсорс` FROM (
SELECT
CASE
WHEN department = 'РФ' THEN
avg_time
END AS `РФ`,
CASE
WHEN department = 'ЕС' THEN
avg_time
END AS `ЕС`,
CASE
WHEN department = 'Аутсорс' THEN
avg_time
END AS `Аутсорс`
FROM
(
SELECT
department,
(sum(apruv) / count(*) * 100) AS avg_time
FROM
report_designer
WHERE TIMESTAMPDIFF(
MINUTE,
createdtime_spec,
first_status_change
) <= 15
GROUP BY
department
) x
查询结果为
如何从查询结果中删除空值?
因此,只剩下一行一种方法是使用:
SELECT
CASE
WHEN department = 'РФ' THEN
avg_time
END AS `РФ`,
CASE
WHEN department = 'ЕС' THEN
avg_time
END AS `ЕС`,
CASE
WHEN department = 'Аутсорс' THEN
avg_time
END AS `Аутсорс`
FROM
(
SELECT
department,
(sum(apruv) / count(*) * 100) AS avg_time
FROM
report_designer
WHERE TIMESTAMPDIFF(
MINUTE,
createdtime_spec,
first_status_change
) <= 15
GROUP BY
department
) x
SELECT
(SELECT (sum(apruv) / count(*) * 100) AS avg_time
FROM report_designer
WHERE TIMESTAMPDIFF(MINUTE,createdtime_spec,first_status_change) <= 15
AND department = 'РФ') AS `РФ`,
(SELECT (sum(apruv) / count(*) * 100) AS avg_time
FROM report_designer
WHERE TIMESTAMPDIFF(MINUTE,createdtime_spec,first_status_change) <= 15
AND department = 'EC') AS `EC`,
(SELECT (sum(apruv) / count(*) * 100) AS avg_time
FROM report_designer
WHERE TIMESTAMPDIFF(MINUTE,createdtime_spec,first_status_change) <= 15
AND department = 'Аутсорс') AS `Аутсорс`;
这将返回不一致的值。例如,如果一个部门的采购订单为空,但EC不为空,则应用上述转换将返回不为空的采购订单值,这将是错误的。