sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera 0 när resultatet är tomt

Du kanske ville ha det här (jag behåller uppenbara syntax- och stavfel som jag inte riktigt kan korrigera utan mer information):

SELECT NumberOfAccedentInYear = ISNULL
(
  (SELECT COUNT(AccedentId)
   FROM         Accident
   GROUP BY DriverId, YEAR(AccedentDate)
   HAVING     (DriverId [email protected])<3))
   , 0
);

För alla som är nyfikna på diskussionen om COALESCE vs ISNULL, och varför jag ändrade mitt svar till att använda ISNULL, påpekade @kanav med rätta att COALESCE är dyrare. COALESCE utvärderar underfrågan två gånger, som jag förklarade här:https://stackoverflow.com/a/10669660/ 61305




  1. Varför stänger inte MySQLdb Connection-kontexthanteraren markören?

  2. Spårning av bannervisningar - Databasdesign

  3. Det går inte att återställa rotlösenordet:windows, MySQL8.0

  4. mappa Excel-data till mysql-databas