Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Retorna 0 quando o resultado está vazio


Talvez você quisesse isso (estou mantendo erros óbvios de sintaxe e ortografia que não posso corrigir sem mais informações):
SELECT NumberOfAccedentInYear = ISNULL
(
  (SELECT COUNT(AccedentId)
   FROM         Accident
   GROUP BY DriverId, YEAR(AccedentDate)
   HAVING     (DriverId [email protected])<3))
   , 0
);

Para qualquer um curioso sobre a discussão COALESCE vs ISNULL, e por que mudei minha resposta para usar ISNULL, @kanav apontou corretamente que COALESCE é mais caro. COALESCE avalia a subconsulta duas vezes, como expliquei aqui:https://stackoverflow.com/a/10669660/ 61305