SQLite
 sql >> Base de données >  >> RDS >> SQLite

Formater les résultats de la requête SQLite sous forme de liste séparée par des virgules

SQLite a plusieurs modes et paramètres qui vous permettent de sortir les résultats de la requête sous forme de liste séparée par des virgules.

Par exemple, vous pouvez utiliser le .separator dot pour spécifier une virgule comme séparateur. Ou vous pouvez utiliser le mode "quote" pour formater la sortie sous forme de littéraux de chaîne.

Cependant, pour les besoins de cet article, je vais utiliser csv mode, qui formate les résultats sous forme de liste séparée par des virgules, ainsi qu'avec des guillemets doubles autour des chaînes. Les guillemets doubles internes sont entre guillemets doubles.

Exemple

Dans cet exemple, je passe à csv mode, puis sélectionnez les données de la base de données.

.mode csv
SELECT * FROM Products;

Résultat :

1,"Widget Holder",139.5
2,"Widget Opener",89.7
3,"Bob's ""Best"" Widget",374.2
4,"Blue Widget",63.0

Notez que les guillemets doubles internes étaient entre guillemets doubles, mais pas les guillemets simples internes.

Si vous voulez voir cela par rapport au mode par défaut de SQLite (liste séparée par des tubes), ici, il utilise ce mode.

.mode list
SELECT * FROM Products;

Résultat :

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Bob's "Best" Widget|374.2
4|Blue Widget|63.0

Ajouter des en-têtes de colonne

Vous pouvez également ajouter des en-têtes de colonne (noms de colonne) en utilisant .headers on .

.headers on
.mode csv
SELECT * FROM Products;

Résultat :

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

Si vous souhaitez supprimer les en-têtes, vous pouvez utiliser .headers off .

Enregistrer vos paramètres

Définir le mode comme celui-ci ne le définit que pour la session en cours. Si vous ouvrez une nouvelle connexion à SQLite, il reviendra aux paramètres par défaut.

Si vous souhaitez que vos paramètres persistent, afin que vous n'ayez pas à changer de mode à chaque fois que vous vous connectez à SQLite, vous pouvez stocker vos paramètres dans un .sqliterc fichier.

Pour ce faire, saisissez ce qui suit dans un fichier texte vide :

.headers on
.mode csv

Ensuite, enregistrez-le sous .sqliterc dans votre répertoire personnel.

Désormais, lorsque vous utilisez le shell de ligne de commande SQLite, il vérifie d'abord votre .sqliterc fichier pour tous les paramètres.

Le GROUP_CONCAT() Fonction

Vous pouvez également utiliser le Group_Concat() fonction pour convertir les résultats de la requête en une liste séparée par des virgules à partir d'une requête SQL elle-même.