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, por lo que obtengo un valor nulo que creo que es el predeterminado para la combinación externa izquierda. ¿Hay alguna forma de reemplazar los valores predeterminados en la instrucción de selección? Tengo una solución alternativa en la que puedo seleccionar una variable de tabla, pero se siente un poco sucio.
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 se establezcan por defecto en cero si es posible.
mysql
sql
sql-server
tsql
sql-server-2008
Brett Bim
fuente
fuente
Respuestas:
Eso es tan fácil como
O más completamente:
fuente
IFNULL
.En caso de
MySQL
oSQLite
la palabra clave correcta esIFNULL
(noISNULL
).fuente
MySQL
Por ejemplo:
Además, puede utilizar varias columnas para comprobar su
NULL
por COALESCE función. Por ejemplo:fuente