De SQLite ifnull()
functie stelt u in staat om NULL-waarden te vervangen door een andere waarde.
Er zijn twee argumenten nodig en het retourneert een kopie van het eerste niet-NULL-argument, of NULL als beide argumenten NULL zijn.
De ifnull()
functie is gelijk aan coalesce()
met twee argumenten.
Eenvoudig voorbeeld
Hier is een eenvoudig voorbeeld om het concept te demonstreren.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Resultaat:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
De tweede kolom was NULL en dus 0 werd in plaats daarvan teruggestuurd.
Databasevoorbeeld
Dit voorbeeld gebruikt ifnull()
in een databasequery. Dit laat zien hoe ifnull()
kan handig zijn bij het opvragen van gegevens die NULL-waarden kunnen bevatten.
Neem de volgende tabel als voorbeeld:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
De meeste producten zijn gevuld met prijzen, maar de prijs van Gratis bier is NULL.
We kunnen dit wijzigen in een waarde naar keuze.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Resultaat:
ProductName ifnull(Price, 0.0) ------------- ------------------ Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer 0.0
Nu heeft het dezelfde prijs als de andere gratis producten.
De vervangingswaarde hoeft niet per se een getal te zijn. Je kunt het ook vervangen door een tekenreeks.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Resultaat:
ProductName ifnull(Price, 'FREE!') ------------- ---------------------- Widget Holder 139.5 Widget Stick 89.75 Foo Cap 11.99 Free Widget 0.0 Free Foobar 0.0 Free Beer FREE!
Als beide argumenten NULL zijn
Als beide argumenten NULL zijn, wordt NULL geretourneerd.
SELECT ifnull(NULL, NULL);
Resultaat:
ifnull(NULL, NULL) ------------------