sql >> Databáze >  >> RDS >> Sqlserver

Vraťte 0, když je výsledek prázdný

Možná jste chtěli toto (ponechávám zjevné syntaktické a pravopisné chyby, které bez dalších informací opravdu nemohu opravit):

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

Pro každého, kdo se zajímá o diskuzi COALESCE vs ISNULL a proč jsem změnil svou odpověď na použití ISNULL, @kanav správně poukázal na to, že COALESCE je dražší. COALESCE vyhodnocuje poddotaz dvakrát, jak jsem vysvětlil zde:https://stackoverflow.com/a/10669660/ 61305




  1. jak změnit formát data v tomto html uživatelském formuláři

  2. java.sql.SQLException:Přístup odepřen uživateli 'root'@'localhost' (pomocí hesla:ANO)

  3. Role Postgresql Docker neexistuje

  4. Klauzule SQL IN pomalejší než jednotlivé dotazy