00 Stimmen

SQLite: 0 auslesen falls Feld NULL ist

Frage von SmartUser | 16.09.2016 um 15:34

Gibt es bei SQLite irgendeine Möglichkeit, immer dann, wenn ein Feld eigentlich den Wert NULL hätte stattdessen die Zahl 0 zurückzugeben?

Ich habe oft das Problem, dass einige Felder nicht belegt oder definiert sind (zum Beispiel bei einer Abfrage mit einem JOIN) und in diesem Fall hätte ich gerne im Ergebnis einfach eine 0 stehen, da NULL beim Übergeben an eine andere Funktion oft Probleme macht. Gibt es da eine Möglichkeit?

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

Du suchst die Funktion IFNULL(). Dieser Funktion kannst du zwei Werte übergeben und du erhältst den ersten der beiden Werte zurück, der nicht NULL ist.

Hier möchten wir zum Beispiel den Wert von "points" aus der Tabelle "users" auslesen:

SELECT points FROM users WHERE id = 1;

Falls "points" auch NULL sein kann und wir in diesem Fall 0 im Ergebnis stehen haben möchten, können wir IFNULL() folgendermaßen einsetzen:

SELECT IFNULL(points, 0) FROM users WHERE id = 1;

Das erste Argument für IFNULL() ist also der Wert aus "points". Falls der Wert von "points" nicht NULL ist, wird dieser zurückgegeben. Falls dieser Wert allerdings NULL ist, wird das zweite Argument als Rückgabewert verwendet.

Statt 0 als zweites Argument können wir natürlich auch jeden beliebigen anderen Wert oder ein anderes Feld übergeben. Sind beide übergebenen Argumente NULL, wird übrigens auch von IFNULL() der Wert NULL zurückgegeben.

Falls wir mehr als zwei Argumente zur Auswahl stellen möchte, können wir die Funktion COALESCE() benutzen. Diese gleicht der Funktion IFNULL(), kann aber eine beliebige Anzahl von Argumenten entgegennehmen.
17.09.2016 um 17:08

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.