Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Върнете 0, когато резултатът е празен

Може би сте искали това (запазвам очевидни синтактични и правописни грешки, които не мога да коригирам без повече информация):

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

За всеки, който е любопитен относно дискусията COALESCE срещу ISNULL и защо промених отговора си, за да използвам ISNULL, @kanav правилно посочи, че COALESCE е по-скъп. COALESCE оценява подзаявката два пъти, както обясних тук: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. Използване на SQL Server Integration Services (SSIS) за попълване на QuickBooks записи

  2. Вмъкване на резултати от съхранена процедура във временна таблица

  3. Гарантирано ли е, че ръководствата са уникални?

  4. Виртуални машини Azure за използване на SQL сървър

  5. Въведение в потребителски дефинирани функции в SQL Server