Tengo una consulta que cuenta el precio de todos los artículos entre dos fechas. Aquí está la instrucción select:¿Cómo puedo cambiar NULL a 0 cuando obtengo un valor único de una función SQL?
SELECT SUM(Price) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Puede suponer que todas las tablas se han configurado correctamente.
Si hago un selecto entre dos fechas y no hay elementos dentro de ese intervalo de tiempo, la función devuelve NULL como el TotalPrice en vez de 0.
Cómo me puedo asegurar que si no se encuentran registros, 0 se devuelve en lugar de NULL?
Si lees la pregunta que quiere 0 que se devuelva si no hubo resultados, esto solo funcionará si el resultado de la suma es nulo – Tetraneutron
@Tetraneutron: Creo que funcionará. sum (price) será nulo si no hay filas, pero siempre habrá exactamente una fila de resultados. – Thilo
COALESCE funciona bien siempre que obtenga una fila para que funcione (lo que hace en este caso). COALESCE no te ayudará si no obtienes filas atrás. –