El ifnull()
de SQLite La función le permite reemplazar valores NULL con otro valor.
Toma dos argumentos y devuelve una copia de su primer argumento no NULL, o NULL si ambos argumentos son NULL.
El ifnull()
la función es equivalente a coalesce()
con dos argumentos.
Ejemplo sencillo
Aquí hay un ejemplo simple para demostrar el concepto.
SELECT
ifnull(123, 0),
ifnull(NULL, 0);
Resultado:
ifnull(123, 0) ifnull(NULL, 0) -------------- --------------- 123 0
La segunda columna era NULL y entonces 0 fue devuelto en su lugar.
Ejemplo de base de datos
Este ejemplo usa ifnull()
en una consulta de base de datos. Esto demuestra cómo ifnull()
puede ser útil cuando se consultan datos que pueden contener valores NULL.
Tome la siguiente tabla como ejemplo:
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
La mayoría de los productos se han rellenado con precios, pero el precio de Cerveza gratis es NULL.
Podemos cambiar esto a un valor de nuestra elección.
SELECT
ProductName,
ifnull(Price, 0.0)
FROM Products;
Resultado:
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
Ahora tiene el mismo precio que los demás productos gratuitos.
El valor de reemplazo no necesariamente tiene que ser un número. También puede reemplazarlo con una cadena.
SELECT
ProductName,
ifnull(Price, 'FREE!')
FROM Products;
Resultado:
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!
Cuando ambos argumentos son NULL
Si ambos argumentos son NULL, se devuelve NULL.
SELECT ifnull(NULL, NULL);
Resultado:
ifnull(NULL, NULL) ------------------