Cuando se utiliza la interfaz de línea de comandos (CLI) de SQLite, de forma predeterminada, cada vez que una consulta devuelve un valor nulo, el resultado es una cadena vacía (''
).
Podemos cambiar esto usando -nullvalue
opción de línea de comando al iniciar SQLite.
También podemos usar el .nullvalue
comando dot si ya estamos en la CLI de SQLite.
El -nullvalue
Opción
Podemos usar el -nullvalue
opción al iniciar SQLite.
He aquí un ejemplo:
sqlite3 -nullvalue null
En este caso, cada vez que encuentro un valor nulo, el texto null
Será devuelto. Usé null
en este ejemplo, pero podría ser cualquier texto.
Lanzar SQLite sin esa opción habría establecido -nullvalue
a la cadena vacía.
El .nullvalue
Comando de puntos
Si ya estamos en SQLite, no necesitamos salir y reiniciar para cambiar nuestro nullvalue
ajustes. Podemos usar el .nullvalue
comando de punto en su lugar
Ejemplo:
.nullvalue null
Para que quede claro, eso debe ejecutarse desde el shell de comandos de SQLite (es decir, después de haber iniciado SQLite).
Nuevamente, podemos usar cualquier texto aquí para representar valores nulos.
Ejemplo
Establezcamos nullvalue
al iniciar SQLite:
sqlite3 -nullvalue n/a
Ahora, cada vez que se devuelve un valor nulo, la cadena n/a
se emitirá.
Hagamos eso:
SELECT 1/0;
Resultado:
+-----+ | 1/0 | +-----+ | n/a | +-----+
Dividir un número por cero devuelve un valor nulo. En nuestro caso, obtenemos n/a
, que es exactamente como se esperaba.
Ahora cambiemos nuestro nullvalue
configuración:
.nullvalue null
Y ejecuta la consulta de nuevo:
SELECT 1/0;
Resultado:
+------+ | 1/0 | +------+ | null | +------+
Ahora obtenemos la cadena null
cada vez que se devuelve un valor nulo.
La configuración predeterminada
Supongamos que lanzamos SQLite sin configurar nullvalue
:
sqlite3
Aquí, abrimos la terminal de nuestra computadora o el símbolo del sistema e ingresamos el comando para iniciar SQLite (es decir, sqlite3
) sin especificar ninguna opción.
Ahora, cuando ejecutamos una consulta que devuelve un valor nulo, obtenemos la cadena vacía:
SELECT 1/0;
Resultado:
+-----+ | 1/0 | +-----+ | | +-----+
Ese es el resultado predeterminado para valores nulos. Es lo que obtenemos cuando no usamos el -nullvalue
opción o .nullvalue
comando punto.