SQLite equivalente a ISNULL(), NVL(), IFNULL() o COALESCE()
-
Obtener registros con valores
NULOS
en la base de datos SQLite -
Use
THEN
yELSE
para buscar valoresNULL
en la base de datos SQLite -
Utilice la función
COALESCE()
en la base de datos SQLite -
Utilice la función
NVL()
en la base de datos SQLite -
Diferencia entre las funciones
COALESCE()
yifnull()
-
Diferencia entre las funciones
COALESCE()
yisnull()
SQLite se utiliza para crear, leer, actualizar y eliminar registros de la base de datos. La base de datos contiene diferentes tablas para mantener los datos.
Cada tabla consta de filas y columnas, que llevan el registro. Estos registros suelen tener valores vacíos o nulos, lo que provoca problemas o errores al recuperar los datos.
Obtener registros con valores NULOS
en la base de datos SQLite
Para obtener los registros de la base de datos SQLite, usamos la cláusula SELECT
en la instrucción SQLite. La declaración SELECT
también obtiene e ignora los valores NULL
y obtiene el registro solo con valor.
SELECT field
FROM table
WHERE field = aCondition
Surge un problema cuando hay valores vacíos dentro de la tabla. Las declaraciones SELECT
necesitan la verificación NULL
para registrar o llenar los valores vacíos con un texto específico para acomodar los registros con valores vacíos.
SELECT field, [isnull](field, '')
FROM table
WHERE field = aCondition
En la declaración anterior, es posible que los valores NULL
no puedan reconocer la función isnull()
. Hay una función similar a la función isnull()
, la función ifnull()
, para solucionar este problema.
La sintaxis completa de la función ifnull()
es la siguiente.
Sintaxis de la función ifnull()
:
ifnull(column, alternateValue)
Parámetros:
column |
La columna de destino en la base de datos SQLite. |
alternateValue |
El valor seleccionado si el valor devuelto es nulo o vacío. |
En las siguientes declaraciones, usamos la función ifnull()
con la declaración SELECT
. La primera declaración elimina todos los valores NULOS
del registro y los reemplaza con una cadena vacía.
Puede agregar cualquier valor como reemplazo de los valores NULL
en los registros de la base de datos. Esto se puede mostrar en la segunda declaración, donde un valor NULL
se reemplaza por un valor de cadena This is a NULL
en la base de datos SQLite.
La función ifnull()
toma exactamente los dos argumentos y devuelve la primera cadena o texto no vacío o NULL
si ambos argumentos proporcionados son NULL
.
SELECT ifnull(NameofColumn,'')
SELECT ifnull(NULL,'This is a NULL');
Use THEN
y ELSE
para buscar valores NULL
en la base de datos SQLite
Alternativamente, si el primer escenario no es adecuado para su condición, podemos usar la declaración condicional IS NULL
para verificar los valores vacíos dentro de la tabla.
La siguiente declaración de SQLite es equivalente al comando ISNULL(fieldName, 0)
. La cláusula IS NULL
devolverá todos los valores vacíos dentro de la base de datos.
Si se encuentra algún valor, ENTONCES
reemplaza el vacío con un valor 0
, ELSE
si se encuentra algo (no vacío), entonces el valor permanece sin cambios.
SELECT fieldName FROM NameOfTable WHERE fieldName IS NULL THEN 0 ELSE fieldName END
Utilice la función COALESCE()
en la base de datos SQLite
Similar a la función ifnull()
, la función COALESCE()
proporciona un valor alternativo al valor de la columna donde el valor dado es NULL
. Para escribir la declaración de SQLite para verificar el valor nulo con la función COALESCE()
, escribimos la declaración para la tabla dada.
La función COALESCE()
funciona en SQLite versión 3.8.6 y superior.
identificación | Cantidad |
---|---|
1 | 200 |
2 | 13 |
3 | NULO |
4 | 30 |
5 | 512 |
SELECT COALESCE(Quantity, 0) AS Inventory
FROM Product;
Salida de tabla actualizada:
identificación | Cantidad |
---|---|
1 | 200 |
2 | 13 |
3 | 0 |
4 | 30 |
5 | 512 |
Utilice la función NVL()
en la base de datos SQLite
Similar a la función COALESCE()
, la función NVL()
hace lo mismo. Comprueba los valores vacíos dentro de la base de datos y los reemplaza con un valor alternativo como se especifica en la función NVL()
.
La diferencia es que la función isnull()
ha sido reemplazada por la función NVL()
, una función de Oracle en el servidor SQL.
Diferencia entre las funciones COALESCE()
y ifnull()
La principal diferencia entre las funciones COALESCE()
y ifnull()
es que la función ifnull()
toma solo dos argumentos. Comprueba si el primer argumento es NULL
o no, y si es NULL
, lo reemplaza por el segundo argumento.
Por el contrario, la función COALESCE()
toma dos o más parámetros y comprueba si el primer argumento es NULL
. Si el primer argumento es NULL
, comprueba el segundo.
Si el segundo argumento es NULL
, sigue comprobando el siguiente argumento hasta que encuentra un valor no vacío y lo reemplaza con el primer argumento NULL
.
SELECT IFNULL('any value', 'extra value');
SELECT IFNULL(NULL,'extra value');
SELECT COALESCE(NULL, 'extra value');
SELECT COALESCE(NULL, 'any value', 'extra value');
SELECT COALESCE(NULL, NULL, NULL, NULL, 'the non-null value');
Producción :
any value
extra value
extra value
some value
the non-null value
Diferencia entre las funciones COALESCE()
y isnull()
Principalmente, ambas funciones realizan la misma funcionalidad, verificando los valores NULL
y reemplazándolos con el valor no vacío especificado. Sin embargo, tienen una diferencia en su comportamiento.
- La diferencia es que la función
isnull()
evalúa solo una vez, pero la funciónCOALESCE()
evalúa varias veces. - Otra diferencia es que al determinar el tipo de datos, la función
isnull()
usa el tipo de datos del primer argumento, mientras que la funciónCOALESCE()
usa la regla de expresiónCASE
y toma el tipo de datos de mayor prioridad. . - La última diferencia es que la función
isnull()
nunca devuelve un valorNULL
, y siempre asumimos que el resultado de esta función no admite valores NULL. Mientras que la funciónCOALESCE()
puede devolver la expresiónNULL
.
Ejemplo 1:
CREATE TABLE example
(
column1 INTEGER NULL,
column2 AS COALESCE(column1, 0) PRIMARY KEY,
column3 AS ISNULL(column1, 0)
);
Producción :
# the statement fails as the nullability of the COALESCE function evaluates to NULL
Error: PRIMARY KEY cannot accept NULL values
Ejemplo 2:
CREATE TABLE example
(
column1 INTEGER NULL,
column2 AS COALESCE(column1, 0),
column3 AS ISNULL(col1umn, 0) PRIMARY KEY
);
Producción :
# the above statement works as the nullability of the ISNULL function evaluates as NOT NULL.
No error
Hi, I'm Junaid. I am a freelance software developer and a content writer. For the last 3 years, I have been working and coding with Python. Additionally, I have a huge interest in developing native and hybrid mobile applications.
LinkedIn