Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trả về 0 khi kết quả trống

Có thể bạn muốn điều này (Tôi đang giữ các lỗi cú pháp và chính tả rõ ràng mà tôi thực sự không thể sửa nếu không có thêm thông tin):

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

Đối với bất kỳ ai tò mò về cuộc thảo luận COALESCE vs ISNULL và tại sao tôi thay đổi câu trả lời của mình để sử dụng ISNULL, @kanav đã chỉ ra một cách đúng đắn rằng COALESCE đắt hơn. COALESCE đánh giá truy vấn con hai lần, như tôi đã giải thích ở đây: 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. Sự khác biệt giữa chỉ mục được phân nhóm và không được phân nhóm là gì?

  2. Thủ tục được lưu trữ - trả về danh tính dưới dạng tham số đầu ra hoặc đại lượng vô hướng

  3. Làm cách nào để xóa bằng INNER JOIN với SQL Server?

  4. Các kiểu dữ liệu C # tương đương cho ngày, giờ và datetimeoffset của SQL Server là gì?

  5. Tìm những từ mà một tập hợp các chữ cái có thể tạo ra?