sql >> Database >  >> RDS >> SQLite

Hoe lange regels tekst in SQLite-resultaten te laten lopen

Als u een van de uitvoermodi in tabelvorm van SQLite gebruikt, zou u kunnen worstelen met lange regels tekst die ertoe leiden dat alle volgende kolommen ver naar rechts worden geduwd. Dit kan ertoe leiden dat u zijwaarts moet blijven scrollen terwijl u de gegevens doorleest.

Gelukkig is er een eenvoudige oplossing.

U kunt de --wrap . gebruiken optie om de maximale breedte van elke kolom in te stellen. Elke kolom die tekst bevat die langer is, loopt door naar de volgende regel.

Je kunt ook --wordwrap on of de sneltoets -ww om ervoor te zorgen dat woorden niet halverwege worden afgebroken.

Voorbeeld

Stel dat we onze uitvoermodus instellen op table :

.mode table

In dit stadium hebben we nog geen wrap-opties gespecificeerd.

Daarom, wanneer we kolommen met lange tekst selecteren, niet omslag:

SELECT * FROM Album LIMIT 2;

Resultaat:

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

Laten we nu de wrap-optie instellen:

.mode --wrap 20

Laten we de query nu opnieuw uitvoeren:

SELECT * FROM Album LIMIT 2;

Resultaat:

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

We kunnen zien dat de eerste regel is ingepakt in overeenstemming met onze --wrap instellingen.

Ik heb in dit voorbeeld geen woordterugloop gespecificeerd en dus werd in dit geval het woord "Rock" opgesplitst - een deel ervan bleef op de eerste regel en een deel ervan liep terug naar de volgende regel.

We kunnen dit oplossen met --wordwrap on of de sneltoets -ww :

.mode -wrap 20 -ww

Dat is hetzelfde als het volgende doen:

.mode -wrap 20 --wordwrap on

Laten we de query nu opnieuw uitvoeren:

SELECT * FROM Album LIMIT 2;

Resultaat:

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

Deze keer wordt het woord "Rock" naar de volgende regel verplaatst in plaats van te worden afgesneden.

Een andere optie:qbox Modus

Een andere optie voor het teruglopen van tekstregels is het gebruik van qbox uitvoermodus:

.mode qbox

Dat is een snelkoppeling voor het volgende:

.mode box --wrap 60 --quote

Dus dit wikkelt regels in met 60 tekens, en het citeert strings zoals een letterlijke SQL.


  1. ORA-00972 identifier is te lang alias kolomnaam

  2. Oracle:hoe UPSERT (bijwerken of invoegen in een tabel?)

  3. Maak een database-e-mailprofiel in SQL Server (T-SQL)

  4. SQLite - Gegevens exporteren naar een CSV-bestand