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

Returner 0, når resultatet er tomt

Måske ville du have dette (jeg beholder åbenlyse syntaks- og stavefejl, som jeg ikke rigtig kan rette uden mere information):

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

For alle, der er nysgerrige om COALESCE vs ISNULL diskussionen, og hvorfor jeg ændrede mit svar til at bruge ISNULL, påpegede @kanav med rette, at COALESCE er dyrere. COALESCE evaluerer underforespørgslen to gange, som jeg forklarede her:https://stackoverflow.com/a/10669660/ 61305




  1. Fejl 310:Iscenesættelse mislykkedes ved implementering - Grails-app i Cloud Foundry

  2. Hvordan skriver man DataFrame til postgres-tabel?

  3. Ændre AUTO_INCREMENT værdi ved at vælge resultat

  4. PostgreSQL psycopg2 Python3.7.4 UnicodeDecodeError:'ascii' codec kan ikke afkode byte