Tôi có truy vấn Microsoft SQL Server 2008 trả về dữ liệu từ ba bảng bằng cách sử dụng phép nối ngoài bên trái. Nhiều lần, không có dữ liệu trong bảng thứ hai và thứ ba và vì vậy tôi nhận được một null mà tôi nghĩ là mặc định cho bên ngoài tham gia bên ngoài. Có cách nào để thay thế các giá trị mặc định trong câu lệnh chọn không? Tôi có một workaround ở chỗ tôi có thể chọn vào một biến bảng nhưng nó cảm thấy một chút bẩn.Thay thế giá trị rỗng mặc định được trả về từ bên trái bên trái Tham gia
SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail',
iar.Compliance FROM InventoryAdjustmentReason iar
LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId)
LEFT OUTER JOIN Item i on (i.Id = iai.ItemId)
LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo)
WHERE iar.StoreUse = 'yes'
Tôi muốn Số lượng và Giá thông thường mặc định bằng không nếu có thể.
Tôi biết điều đó phải dễ dàng nhưng vì một lý do nào đó, tôi đã bị chặn cách thực hiện. Cảm ơn. –
Nếu đó là MySQL, IsNull nên được thay thế bằng 'IFNULL'. Cảm ơn. – Dhanushka
Trong PostgreSQL, nó có vẻ là ["COALESCE"] (http://www.postgresql.org/docs/9.3/static/functions-conditional.html). Đối với MySQL, trang hướng dẫn là ở đây: ["IFNULL"] (http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html). Không chắc chắn về tiêu chuẩn. –