SQLite dispone di diverse modalità e impostazioni che consentono di generare risultati di query come un elenco separato da virgole.
Ad esempio, puoi usare il .separator
comando punto per specificare una virgola come separatore. Oppure potresti usare la modalità "virgolette" per formattare l'output come letterali stringa.
Tuttavia, ai fini di questo articolo, utilizzerò csv
mode, che formatta i risultati come un elenco separato da virgole, nonché con virgolette intorno alle stringhe. Le virgolette interne sono doppie.
Esempio
In questo esempio, passo a csv
modalità, quindi seleziona i dati dal database.
.mode csv
SELECT * FROM Products;
Risultato:
1,"Widget Holder",139.5 2,"Widget Opener",89.7 3,"Bob's ""Best"" Widget",374.2 4,"Blue Widget",63.0
Nota che le virgolette interne erano doppie, ma le virgolette singole interne no.
Se vuoi vedere questo rispetto alla modalità predefinita di SQLite (elenco separato da pipe), qui sta usando quella modalità.
.mode list
SELECT * FROM Products;
Risultato:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Bob's "Best" Widget|374.2 4|Blue Widget|63.0
Aggiungi intestazioni di colonna
Puoi anche aggiungere intestazioni di colonna (nomi di colonna) utilizzando .headers on
.
.headers on
.mode csv
SELECT * FROM Products;
Risultato:
ProductId,ProductName,Price 1,"Widget Holder",139.5 2,"Widget Opener",89.7 3,"Bob's ""Best"" Widget",374.2 4,"Blue Widget",63.0
Se desideri rimuovere le intestazioni, puoi utilizzare .headers off
.
Salva le tue impostazioni
L'impostazione della modalità in questo modo la imposta solo per la sessione corrente. Se apri una nuova connessione a SQLite, verranno ripristinate le impostazioni predefinite.
Se vuoi che le tue impostazioni persistano, in modo da non dover cambiare la modalità ogni volta che ti connetti a SQLite, puoi memorizzare le tue impostazioni in un .sqliterc file.
Per fare ciò, inserisci quanto segue in un file di testo vuoto:
.headers on
.mode csv
Quindi salvalo come .sqliterc nella tua home directory.
Ora, quando usi la shell della riga di comando di SQLite, prima verificherà il tuo .sqliterc file per qualsiasi impostazione.
Il GROUP_CONCAT()
Funzione
In alternativa puoi usare il Group_Concat()
funzione per convertire i risultati della query in un elenco separato da virgole dall'interno di una query SQL stessa.