Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć 0, gdy wynik jest pusty

Może tego chciałeś (zachowuję oczywiste błędy składni i pisowni, których naprawdę nie mogę poprawić bez dodatkowych informacji):

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

Dla każdego, kto jest ciekawy dyskusji COALESCE vs ISNULL i dlaczego zmieniłem odpowiedź na ISNULL, @kanav słusznie zauważył, że COALESCE jest droższy. COALESCE ocenia podzapytanie dwukrotnie, jak wyjaśniłem tutaj:https://stackoverflow.com/a/10669660/ 61305




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw zaktualizowaną procedurę przechowywaną na serwerze SQL

  2. Jak podzielić ciąg znaków za pomocą ogranicznika za pomocą T-SQL?

  3. Dlaczego SQL Server dodaje 4-bajtową liczbę całkowitą do nieunikalnych indeksów klastrowych?

  4. datetime do totalminute w sql

  5. Czy SELECT COUNT(kolumna) jest szybszy/wolniejszy niż SELECT COUNT(*)?