尝试让我的代码在不存在数据时显示 0 而不是 NULL:
SELECT e.EntryName AS Name, e.EntryDate AS Date,
(SELECT COALESCE(COUNT(l.crashNumber), 0)
FROM Crash l
WHERE l.crashName = e.EntryName
AND l.crashDate = e.EntryDate
GROUP BY l.crashNumber
ORDER BY COUNT(l.crashNumber) DESC
LIMIT 1)
FROM
(SELECT e.EntryName, e.EntryDate
FROM Entry e
GROUP BY e.EntryName, e.EntryDate)
e;
正如你所看到的,我尝试过使用 COALESCE,我也尝试过使用 ISNULL。 这个想法是,并非所有比赛都会崩溃,因此它们的输出显示为 NULL,尽管我希望当它为 NULL 时,它应该显示 0。
最佳答案
用途:
SELECT e.raceEntryRaceName AS raceName, e.raceEntryRaceDate AS raceDate,
Coalesce( ( SELECT COUNT(l.pitstopRaceNumber)
FROM PitStops l
WHERE l.pitstopRaceName = e.raceEntryRaceName
AND l.pitstopRaceDate = e.raceEntryRaceDate
GROUP BY l.pitstopRaceNumber
ORDER BY COUNT(l.pitstopRaceNumber) DESC
LIMIT 1), 0) AS mostPitstops
FROM .....
关于mySQL如何将NULL显示为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730290/