Mam zapytanie, które zawiera cenę wszystkich produktów między dwiema datami. Oto instrukcja select:Jak zmienić wartość NULL na 0 podczas pobierania pojedynczej wartości z funkcji SQL?
SELECT SUM(Price) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Można założyć, że wszystkie tabele zostały poprawnie skonfigurowane.
Gdybym zrobić wybierać między dwiema datami i nie ma żadnych przedmiotów w tym przedziale czasowym, funkcja zwraca NULL jako TotalPrice zamiast 0.
Jak mogę mieć pewność, że jeśli nie znajdują się zapisy, 0 zostanie zwrócone zamiast NULL?
Jeśli przeczytasz pytanie, które chce, aby 0 zostało zwrócone, jeśli nie było żadnych wyników, zadziała to tylko wtedy, gdy wynik sumy jest zerowy – Tetraneutron
@Tetraneutron: Myślę, że to zadziała. suma (cena) będzie null, jeśli nie ma żadnych wierszy, ale zawsze będzie dokładnie jeden wiersz wyników. – Thilo
COALESCE działa dobrze, dopóki masz ustawiony rząd, z którego będzie działać (co robisz w tym przypadku). COALESCE nie pomoże, jeśli nie otrzymasz żadnych wierszy. –