我当前正在使用此查询选择一些数据: 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。
2条答案
按热度按时间yrefmtwq1#
所以如果我们不能改变什么
FROM
,那么我们就不能得到一个完美的解决方案。既然你是SELECT
把这个NULL
价值观。如果我们只能修改最终输出,我们可以尝试的一件事是这样的。SELECT MAX(ISNULL(scen.Date,0))...
这将取代所有NULL
与0匹配,但确切地知道您正在尝试做什么会有所帮助。为什么您如此确信查询本身不能以任何方式修改?另一种解决方案是将整个查询放在另一个 Package 器中。
这看起来像:
lskq00tm2#
您可以使用:
这个
CASE
表达式返回NULL
当没有一个WHEN
符合条件,但MAX()
忽略空值,因此只返回Is3D
选定行中的列。