sql >> Databasteknik >  >> RDS >> SQLite

Hur man lindar långa textrader i SQLite-resultat

Om du använder ett av SQLites tabellformade utmatningslägen, kanske du kämpar med långa textrader som resulterar i att alla efterföljande kolumner skjuts ut långt till höger. Detta kan göra att du måste fortsätta att rulla i sidled medan du granskar data.

Lyckligtvis finns det en enkel lösning.

Du kan använda --wrap alternativet för att ställa in maximal bredd för varje kolumn. Alla kolumner som innehåller text som är längre än så radbryts till nästa rad.

Du kan också använda --wordwrap on eller dess genväg -ww för att säkerställa att ord inte skärs av halvvägs.

Exempel

Anta att vi ställer in vårt utdataläge till table :

.mode table

I det här skedet har vi fortfarande inte angett några radbrytningsalternativ.

Därför, när vi väljer kolumner med lång text, gör det inte det wrap:

SELECT * FROM Album LIMIT 2;

Resultat:

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

Låt oss nu ställa in wrap-alternativet:

.mode --wrap 20

Låt oss nu köra frågan igen:

SELECT * FROM Album LIMIT 2;

Resultat:

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

Vi kan se att den första raden har raderats i enlighet med vår --wrap inställningar.

Jag angav inte radbrytning i det här exemplet, så i det här fallet bröts ordet "Rock" upp – en del av det stannade på den första raden och en del av det raderade till nästa rad.

Vi kan övervinna detta med --wordwrap on eller dess genväg -ww :

.mode -wrap 20 -ww

Det är samma sak som att göra följande:

.mode -wrap 20 --wordwrap on

Låt oss nu köra frågan igen:

SELECT * FROM Album LIMIT 2;

Resultat:

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

Den här gången lindas ordet "Rock" till nästa rad istället för att skäras av.

Ett annat alternativ:qbox Läge

Ett annat alternativ för att radbryta textrader är att använda qbox utgångsläge:

.mode qbox

Det är en genväg för följande:

.mode box --wrap 60 --quote

Så här radbryts rader med 60 tecken, och det citerar strängar som en SQL-bokstav.


  1. Hur man får en lista över primärnyckelbegränsningar från alla databaser på SQL Server Instance - SQL Server / TSQL Tutorial Del 60

  2. Måste jag skydda mig mot SQL-injektion om jag använde en rullgardinsmeny?

  3. Fixar ORA-65096-fel när man skapar automatiserade tester i Django med Oracle

  4. Automatisk datainsamling om slutförda uppgifter i MS SQL Server