Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituisce 0 quando il risultato è vuoto

Forse volevi questo (mantengo evidenti errori di sintassi e di ortografia che non posso davvero correggere senza ulteriori informazioni):

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

Per chiunque sia curioso della discussione COALESCE vs ISNULL e perché ho cambiato la mia risposta per usare ISNULL, @kanav ha giustamente sottolineato che COALESCE è più costoso. COALESCE valuta la sottoquery due volte, come ho spiegato qui:https://stackoverflow.com/a/10669660/ 61305