我创建了一个查询来使用以下代码构造一个表:
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