mayusculas - tipos de restricciones en mysql




Reemplazar los valores nulos predeterminados devueltos de la unión externa izquierda (2)

Tengo una consulta de Microsoft SQL Server 2008 que devuelve datos de tres tablas usando una combinación externa izquierda. Muchas veces, no hay datos en la segunda y tercera tablas, así que obtengo un valor nulo que creo que es el predeterminado para la combinación externa izquierda. ¿Hay alguna manera de reemplazar los valores predeterminados en la declaración de selección? Tengo una solución en el sentido de que puedo seleccionar una variable de tabla, pero se siente un poco sucia.

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'

Me gustaría que la Cantidad y el Precio Regular de manera predeterminada a cero si es posible.


Eso es tan fácil como

IsNull(FieldName, 0)

O más completamente:

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

No es su ISNULL, en este IFNULL.

 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'




sql-server-2008