Ao usar a interface de linha de comando SQLite (CLI), por padrão, sempre que uma consulta retornar um valor nulo, a saída será a string vazia (
''
). Podemos mudar isso usando o
-nullvalue
opção de linha de comando ao iniciar o SQLite. Também podemos usar o
.nullvalue
dot se já estivermos na CLI do SQLite. O -nullvalue
Opção
Podemos usar o
-nullvalue
opção ao iniciar o SQLite. Aqui está um exemplo:
sqlite3 -nullvalue null
Nesse caso, sempre que encontro um valor nulo, o texto
null
será retornado. Eu usei null
neste exemplo, mas pode ser qualquer texto. Iniciar o SQLite sem essa opção definiria
-nullvalue
para a cadeia vazia. O .nullvalue
Comando de ponto
Se já estivermos no SQLite, não precisamos sair e reiniciar para alterar nosso
nullvalue
definições. Podemos usar o .nullvalue
comando de ponto em vez disso Exemplo:
.nullvalue null
Só para ficar claro, isso precisa ser executado de dentro do shell de comando SQLite (ou seja, depois que você já iniciou o SQLite).
Novamente, podemos usar qualquer texto aqui para representar valores nulos.
Exemplo
Vamos definir
nullvalue
ao iniciar o SQLite:sqlite3 -nullvalue n/a
Agora, sempre que um valor nulo é retornado, a string
n/a
será saída. Vamos fazer isso:
SELECT 1/0;
Resultado:
+-----+ | 1/0 | +-----+ | n/a | +-----+
Dividir um número por zero retorna um valor nulo. No nosso caso, obtemos
n/a
, que é exatamente como esperado. Agora vamos alterar nosso
nullvalue
definições:.nullvalue null
E execute a consulta novamente:
SELECT 1/0;
Resultado:
+------+ | 1/0 | +------+ | null | +------+
Agora obtemos a string
null
sempre que um valor nulo é retornado. A configuração padrão
Suponha que iniciemos o SQLite sem definir
nullvalue
:sqlite3
Aqui, abrimos o terminal ou prompt de comando do nosso computador e inserimos o comando para iniciar o SQLite (ou seja,
sqlite3
) sem especificar nenhuma opção. Agora, quando executamos uma consulta que retorna um valor nulo, obtemos a string vazia:
SELECT 1/0;
Resultado:
+-----+ | 1/0 | +-----+ | | +-----+
Esse é o resultado padrão para valores nulos. É o que obtemos quando não usamos o
-nullvalue
opção ou .nullvalue
comando ponto.