MySQL-Statement.如何在查询中跳过所有行都等于 null 的行



我创建了一个查询来使用以下代码构造一个表:

SELECT Date, 
SUM(CASE WHEN UniqueId = 'NonComLong' THEN Value ELSE NULL END) AS 'NonComLong',
SUM(CASE WHEN UniqueId = 'NonComShort' THEN Value ELSE NULL END) AS 'NonComShort',
SUM(CASE WHEN UniqueId = 'NonComNetLong' THEN Value ELSE NULL END) AS 'NonComNetLong',
SUM(CASE WHEN UniqueId = 'NonComPos' THEN Value ELSE NULL END) AS 'NonComPos',
SUM(CASE WHEN UniqueId = 'TotalPositions' THEN Value ELSE NULL END) AS 'TotalPositions',
SUM(CASE WHEN UniqueId = 'NonComPosShare' THEN Value ELSE NULL END) AS 'NonComPosShare'
FROM fundamental_data WHERE AttributeId = 160 AND Date >= '2011-06-14'
GROUP BY Date
ORDER BY Date; 

上面的代码返回下表:

表格的图像

我想写一段,如果除日期列以外的所有列都返回 NULL,我可以跳过一行。这可能吗?

提前感谢!

假设列value不能null,则可以向WHERE子句添加另一个条件,以确保至少满足聚合函数中的一个条件:

SELECT ...
FROM fundamental_data 
WHERE 
AttributeId = 160 
AND Date >= '2011-06-14'
AND UniqueId IN (
'NonComLong',
'NonComShort',
'NonComNetLong',
'NonComPos',
'TotalPositions',
'NonComPosShare'
)

如果value可能null,您只需添加另一个条件:

WHERE
...
AND value IS NOT NULL

最新更新