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

Comment envelopper de longues lignes de texte dans les résultats SQLite

Si vous utilisez l'un des modes de sortie tabulaire de SQLite, vous risquez de vous retrouver aux prises avec de longues lignes de texte qui entraînent le déplacement de toutes les colonnes suivantes vers la droite. Cela peut vous obliger à continuer à faire défiler les données latéralement pendant que vous parcourez les données.

Heureusement, il existe une solution simple.

Vous pouvez utiliser le --wrap option pour définir la largeur maximale de chaque colonne. Toute colonne contenant du texte plus long passera à la ligne suivante.

Vous pouvez également utiliser --wordwrap on ou son raccourci -ww pour s'assurer que les mots ne sont pas coupés à mi-chemin.

Exemple

Supposons que nous définissions notre mode de sortie sur table :

.mode table

À ce stade, nous n'avons toujours pas spécifié d'options d'habillage.

Par conséquent, lorsque nous sélectionnons des colonnes avec un texte long, cela ne le fera pas enveloppe :

SELECT * FROM Album LIMIT 2;

Résultat :

+---------+---------------------------------------+----------+
| AlbumId |                 Title                 | ArtistId |
+---------+---------------------------------------+----------+
| 1       | For Those About To Rock We Salute You | 1        |
| 2       | Balls to the Wall                     | 2        |
+---------+---------------------------------------+----------+

Définissons maintenant l'option d'habillage :

.mode --wrap 20

Exécutons à nouveau la requête :

SELECT * FROM Album LIMIT 2;

Résultat :

+---------+----------------------+----------+
| AlbumId |        Title         | ArtistId |
+---------+----------------------+----------+
| 1       | For Those About To R | 1        |
|         | ock We Salute You    |          |
+---------+----------------------+----------+
| 2       | Balls to the Wall    | 2        |
+---------+----------------------+----------+

Nous pouvons voir que la première ligne est bouclée conformément à notre --wrap paramètres.

Je n'ai pas spécifié de retour à la ligne dans cet exemple et donc dans ce cas, le mot "Rock" a été divisé - une partie est restée sur la première ligne et une partie a été renvoyée à la ligne suivante.

Nous pouvons surmonter cela avec --wordwrap on ou son raccourci -ww :

.mode -wrap 20 -ww

Cela revient à faire ce qui suit :

.mode -wrap 20 --wordwrap on

Exécutons à nouveau la requête :

SELECT * FROM Album LIMIT 2;

Résultat :

+---------+---------------------+----------+
| AlbumId |        Title        | ArtistId |
+---------+---------------------+----------+
| 1       | For Those About To  | 1        |
|         | Rock We Salute You  |          |
+---------+---------------------+----------+
| 2       | Balls to the Wall   | 2        |
+---------+---------------------+----------+

Cette fois, le mot "Rock" est renvoyé à la ligne suivante plutôt que d'être coupé.

Une autre option :qbox Mode

Une autre option pour envelopper des lignes de texte consiste à utiliser qbox mode de sortie :

.mode qbox

C'est un raccourci pour ce qui suit :

.mode box --wrap 60 --quote

Donc, cela enveloppe les lignes à 60 caractères et cite les chaînes comme un littéral SQL.