En SQLite, si necesita reemplazar los resultados NULL con texto como "N/A", "Ninguno" o incluso el texto "NULL", puede usar una de las tres soluciones a continuación.
Datos de muestra
Primero, aquí hay un ejemplo de una consulta que devuelve algunos valores NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Resultado:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 3 4 5 +420 2 4172 5
Observe que las filas 2, 3 y 4 contienen valores NULL en el Fax columna.
Podemos usar los métodos a continuación para cambiar el resultado para que las columnas NULL muestren "N/A".
La función ifnull()
El ifnull()
La función acepta dos argumentos y devuelve el primero que no es NULL. Si ambos argumentos son NULL, entonces devuelve NULL.
Por lo tanto, el primer argumento debe ser el valor que puede o no ser anulable, y el segundo argumento debe ser el valor con el que desea reemplazar cualquier valor NULL.
Así es como podemos modificar la consulta anterior para mostrar "N/A" siempre que el Fax la columna es NULL.
SELECT
CustomerId,
ifnull(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Resultado:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
Función coalesce()
El coalesce()
La función es muy similar a ifnull()
función. La diferencia es que coalesce()
acepta más de dos argumentos. Simplemente devuelve el primer argumento no NULL.
Por lo tanto, podemos usarlo exactamente de la misma manera que usamos ifnull()
proporcionando dos argumentos.
SELECT
CustomerId,
coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;
Resultado:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5
El comando de punto .nullvalue
Al usar la interfaz de línea de comandos de SQLite, puede usar .nullvalue
comando punto para evitar tener que usar una de las funciones anteriores cada vez que haces una consulta.
Al usar este comando, proporciona una cadena que se usará para reemplazar los valores NULL.
Ejemplo:
.nullvalue N/A
Ahora, siempre que ejecute una consulta que devuelva valores NULL, la cadena "N/A" reemplazará esos valores NULL.
SELECT
CustomerId,
Fax
FROM Customer
LIMIT 5;
Resultado:
CustomerId Fax ---------- ------------- 1 +55 (12) 3923 2 N/A 3 N/A 4 N/A 5 +420 2 4172 5