2017-09-01 37 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