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.