Heim >Datenbank >MySQL-Tutorial >Warum gibt die SUM-Funktion von MySQL „0' statt NULL zurück?
Abrufen von „0“ anstelle von NULL mithilfe der SUM-Funktion von MySQL
Bei Verwendung der SUM-Funktion in MySQL zum Berechnen der Summe der Werte in a Spalte gibt die Funktion NULL zurück, wenn keine passenden Werte gefunden werden. Dieses Verhalten kann problematisch sein, wenn Sie möchten, dass die Funktion in solchen Fällen 0 zurückgibt.
Um dieses Problem zu lösen, kann die Funktion COALESCE eingesetzt werden. COALESCE benötigt zwei Argumente: Das erste Argument ist der Ausdruck, den Sie auswerten möchten, und das zweite Argument ist der Wert, der zurückgegeben werden soll, wenn das erste Argument NULL ist.
Im Fall der SUM-Funktion kann die folgende Syntax verwendet werden verwendet werden:
<code class="sql">SELECT COALESCE(SUM(Column_1), 0) FROM Table WHERE Column_2 = 'Test'</code>
In diesem Beispiel wird der SUM(Column_1)-Ausdruck ausgewertet. Wenn keine passenden Werte für Spalte_2 gefunden werden, gibt der Ausdruck NULL zurück. Allerdings gibt die COALESCE-Funktion dann den angegebenen Standardwert 0 statt NULL zurück.
Dieser Ansatz stellt sicher, dass die SUM-Funktion immer einen numerischen Wert zurückgibt, auch wenn keine passenden Werte gefunden werden. Dadurch können Sie potenzielle Probleme vermeiden, die beim Umgang mit NULL-Werten auftreten können.
Zusätzliche Informationen:
Für ein umfassenderes Verständnis der Funktionsweise von COALESCE: Stellen Sie sich das folgende Szenario vor: Es wurden drei Tabellen mit jeweils unterschiedlichen Datentypen erstellt.
Das Ausführen der folgenden Abfrage für diese Tabellen demonstriert die Funktionalität von COALESCE:
<code class="sql">SELECT table_name, description, expected_sum, COALESCE(SUM(val), 0) AS actual_sum FROM ( SELECT 'foo' AS table_name, 'mixed null/non-null' AS description, 21 AS expected_sum, val FROM Table1 UNION ALL SELECT 'bar' AS table_name, 'all non-null' AS description, 21 AS expected_sum, val FROM Table2 UNION ALL SELECT 'baz' AS table_name, 'all null' AS description, 0 AS expected_sum, val FROM Table3 ) AS subquery GROUP BY table_name, description, expected_sum ORDER BY table_name, description;</code>
Die Ergebnisse dieser Abfrage zeigen, dass COALESCE unabhängig vom Datentyp sicherstellt, dass die SUM-Funktion einen numerischen Wert zurückgibt, was eine flexiblere und vorhersehbarere Datenverarbeitung in Ihren MySQL-Anwendungen ermöglicht.
Das obige ist der detaillierte Inhalt vonWarum gibt die SUM-Funktion von MySQL „0' statt NULL zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!