SQL: Nullwerte in Aggregat-Funktionen einbeziehen

Aus DBWiki
Wechseln zu: Navigation, Suche

Zurück zur Übersicht



Um auch Datensätze mit Nullwerten bei der Aggregierung zu berücksichtigen, lassen sich diese durch eine entsprechende Funktion in einen Nicht-Nullwert umwandeln. Am gebräuchlisten scheint dafür die Funktion coalesce() zu sein. Ansonsten gibt es noch Implementierungen in Form von IsNull() (Jet-SQL), isnull() (T-SQL) und Nz() (Jet-SQL), ifnull() (SQLite3), die mehr oder weniger die gleiche Funktionalität wie coalesce() aufweisen. Im Manual der Datenbank sollten sich Einzelheiten und Unterschiede der einzelnen Funktionen finden lassen.

Lösung für Jet-SQL

Hinweis für Access-Anwender
Um die folgende Abfrage selbst testen zu können, müssen die Tabellen der Übungsdatenbank vorhanden sein.


Das folgende Beispiel verwendet die Nz()-Funktion von Access und gibt die durchschnittliche Provisionshöhe der Abteilung 30 aus, wobei auch die Mitarbeiter berücksichtigt werden, die einen Nullwert in der Spalte provision aufweisen.

SELECT avg( Nz( provision, 0 ) ) AS ds_prov
FROM   mitarbeiter
WHERE  abt_nr = 30

Was dann auf zwei Nachkommastellen gerundet 366,67 ergibt.



Zurück zur Übersicht