2017-09-01 123 views
2

考虑有两列值的样本SQL插入表中作为如何在sql中将null和number的最大值设置为null?

INSERT INTO `over_all` (`team_number`, `day_1`) VALUES 
('J091', '01:00:00'), 
('J091', '01:02:00'); 

INSERT INTO `over_all` (`team_number`, `day_1`) VALUES 
('J092', 'null'), 
('J092', '02:02:00'); 

现在,当我使用

SELECT `over_all`.`team_number`, 
     max(`over_all`.`day_1`) as 'maximum' 
FROM `over_all` 
GROUP BY `over_all`.`team_number` 
ORDER BY 'maximum' 

问:

我想这回的最大J092 as null

数据库中使用

Server版本:25年1月10日,MariaDB的 - mariadb.org二进制分发

+0

您不能在WHERE或GROUP BY中使用别名。 –

+0

你的问题不清楚你的意思是“我希望这个返回J092的最大值为null”。 ?以表格形式显示预期结果 – scaisEdge

回答

2

您可以通过使用CASE WHEN ... THEN ... ELSE ... END做到这一点:

SELECT team_number, 
    case when max(day_1 is null) = 0 then max(day_1) else null end as maximum 
FROM over_all 
GROUP BY team_number 
ORDER BY maximum 

试试看:http://sqlfiddle.com/#!9/101143/2/0