Quando si utilizza l'interfaccia a riga di comando (CLI) di SQLite, per impostazione predefinita, ogni volta che una query restituisce un valore null, l'output è una stringa vuota (''
).
Possiamo cambiarlo usando il -nullvalue
opzione della riga di comando all'avvio di SQLite.
Possiamo anche usare il .nullvalue
dot comando se siamo già nella CLI di SQLite.
Il -nullvalue
Opzione
Possiamo usare il -nullvalue
opzione all'avvio di SQLite.
Ecco un esempio:
sqlite3 -nullvalue null
In questo caso, ogni volta che incontro un valore null, il testo null
sarà restituito. Ho usato null
in questo esempio, ma potrebbe trattarsi di qualsiasi testo.
L'avvio di SQLite senza quell'opzione avrebbe impostato -nullvalue
alla stringa vuota.
Il .nullvalue
Comando punto
Se siamo già in SQLite, non è necessario uscire e riavviare per modificare il nostro nullvalue
impostazioni. Possiamo usare il .nullvalue
comando punto invece
Esempio:
.nullvalue null
Per essere chiari, è necessario eseguirlo dalla shell dei comandi di SQLite (ovvero dopo aver già avviato SQLite).
Anche in questo caso, possiamo usare qualsiasi testo qui per rappresentare valori nulli.
Esempio
Impostiamo nullvalue
durante l'avvio di SQLite:
sqlite3 -nullvalue n/a
Ora, ogni volta che viene restituito un valore nullo, la stringa n/a
verrà emesso.
Facciamolo:
SELECT 1/0;
Risultato:
+-----+ | 1/0 | +-----+ | n/a | +-----+
La divisione di un numero per zero restituisce un valore nullo. Nel nostro caso, otteniamo n/a
, che è esattamente come previsto.
Ora cambiamo il nostro nullvalue
impostazioni:
.nullvalue null
Ed esegui di nuovo la query:
SELECT 1/0;
Risultato:
+------+ | 1/0 | +------+ | null | +------+
Ora otteniamo la stringa null
ogni volta che viene restituito un valore nullo.
L'impostazione predefinita
Supponiamo di avviare SQLite senza impostare nullvalue
:
sqlite3
Qui apriamo il terminale del nostro computer o il prompt dei comandi e inseriamo il comando per avviare SQLite (ad esempio sqlite3
) senza specificare alcuna opzione.
Ora, quando eseguiamo una query che restituisce un valore nullo, otteniamo la stringa vuota:
SELECT 1/0;
Risultato:
+-----+ | 1/0 | +-----+ | | +-----+
Questo è il risultato predefinito per i valori nulli. È ciò che otteniamo quando non utilizziamo il -nullvalue
opzione o .nullvalue
comando punto.