sql选择date不为null的最大列数

tyu7yeag  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(324)

我当前正在使用此查询选择一些数据: SELECT DISTINCT a.code AS code, name, max(scen.Is3D) AS Is3D FROM locations LEFT JOIN ... . 这个 scen 表有列 Is3D 以及 Date . 我只想选择日期 IS NOT NULL . 我试过了 max(scen.Is3D WHERE scen.Date IS NOT NULL) ,但那没用。比赛结束后我什么都不能改变 FROM 在我的查询中,如果可能的话,我需要在max中进行过滤。我正在使用MySQL5.7。

yrefmtwq

yrefmtwq1#

所以如果我们不能改变什么 FROM ,那么我们就不能得到一个完美的解决方案。既然你是 SELECT 把这个 NULL 价值观。如果我们只能修改最终输出,我们可以尝试的一件事是这样的。 SELECT MAX(ISNULL(scen.Date,0))... 这将取代所有 NULL 与0匹配,但确切地知道您正在尝试做什么会有所帮助。为什么您如此确信查询本身不能以任何方式修改?
另一种解决方案是将整个查询放在另一个 Package 器中。
这看起来像:

SELECT * 
FROM ( 
[your whole query here]
) AS inner
WHERE inner.Date IS NOT NULL
lskq00tm

lskq00tm2#

您可以使用:

MAX(CASE WHEN scen.date IS NOT NULL THEN scen.Is3D END) AS Is3D

这个 CASE 表达式返回 NULL 当没有一个 WHEN 符合条件,但 MAX() 忽略空值,因此只返回 Is3D 选定行中的列。

相关问题