Replace Default Null Values Returned From Left Outer Join Replace Default Null Values Returned From Left Outer Join sql-server sql-server

Replace Default Null Values Returned From Left Outer Join


That's as easy as

IsNull(FieldName, 0)

Or more completely:

SELECT iar.Description,   ISNULL(iai.Quantity,0) as Quantity,   ISNULL(iai.Quantity * rpl.RegularPrice,0) as 'Retail',   iar.Compliance FROM InventoryAdjustmentReason iarLEFT 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'


In case of MySQL or SQLite the correct keyword is IFNULL (not ISNULL).

 SELECT iar.Description,       IFNULL(iai.Quantity,0) as Quantity,       IFNULL(iai.Quantity * rpl.RegularPrice,0) 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'


MySQL

COALESCE(field, 'default')

For example:

  SELECT    t.id,    COALESCE(d.field, 'default')  FROM     test t  LEFT JOIN     detail d ON t.id = d.item

Also, you can use multiple columns to check their NULL by COALESCE function.For example:

mysql> SELECT COALESCE(NULL, 1, NULL);        -> 1mysql> SELECT COALESCE(0, 1, NULL);        -> 0mysql> SELECT COALESCE(NULL, NULL, NULL);        -> NULL