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

Nối nhiều bảng trả về giá trị NULL

Đó là vì null ở một trong hai bên của toán tử bổ sung sẽ mang lại kết quả là null . Bạn có thể sử dụng ISNULL(LiabilityPremium, 0) Ví dụ:

ISNULL(l.LiabilityPremium,0) + ISNULL(h.LiabilityPremium,0) as LiabilityPremium

hoặc bạn có thể sử dụng COALESCE thay vì ISNULL .

COALESCE(l.LiabilityPremium,0) + COALESCE(h.LiabilityPremium,0) as LiabilityPremium

Chỉnh sửa

Tôi không chắc đây là sự trùng hợp với tập dữ liệu nhỏ này hay được mong đợi nhưng nếu người ta luôn mong đợi rằng @LiabilityPremium.LiabilityPremium hoặc @HiredPremium.LiabilityPremium sẽ luôn là null nên không cần thực hiện phép cộng. Thay vào đó, hãy sử dụng COALESCE trực tiếp trên 2 cột đó.

COALESCE(l.LiabilityPremium, h.LiabilityPremium) as LiabilityPremium


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MAMP có nên trả về ::1 dưới dạng IP trên localhost không?

  2. Cài đặt cụm chuyển đổi dự phòng SQL Server -3

  3. Cách nhận các giá trị Tối đa và Tối thiểu từ một Bảng bằng cách sử dụng Hàm Tổng hợp - Hướng dẫn SQL Server / TSQL Phần 129

  4. Tạo một dạng xem trong SQL Server 2017

  5. Mã hóa sao lưu cơ sở dữ liệu SQL Server