sql >> Database teknologi >  >> RDS >> SQLite

Sådan ombrydes lange tekstlinjer i SQLite-resultater

Hvis du bruger en af ​​SQLites tabelformede output-tilstande, kan du komme til at kæmpe med lange tekstlinjer, der resulterer i, at alle efterfølgende kolonner bliver skubbet langt ud til højre. Dette kan medføre, at du bliver nødt til at rulle sidelæns, mens du læser dataene.

Heldigvis er der en nem løsning.

Du kan bruge --wrap mulighed for at indstille den maksimale bredde af hver kolonne. Enhver kolonne, der indeholder tekst, der er længere end det, ombrydes til næste linje.

Du kan også bruge --wordwrap on eller dens genvej -ww for at sikre, at ord ikke bliver skåret af halvvejs.

Eksempel

Antag, at vi indstiller vores output-tilstand til table :

.mode table

På nuværende tidspunkt har vi stadig ikke angivet nogen ombrydningsmuligheder.

Derfor, når vi vælger kolonner med lang tekst, vil det ikke 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        |
+---------+---------------------------------------+----------+

Lad os nu indstille wrap-indstillingen:

.mode --wrap 20

Lad os nu køre forespørgslen 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, at den første linje er ombrudt i overensstemmelse med vores --wrap indstillinger.

Jeg specificerede ikke ordombrydning i dette eksempel, og så i dette tilfælde blev ordet "Rock" brudt op - en del af det forblev på den første linje og en del af det ombrøt til den næste linje.

Vi kan overvinde dette med --wordwrap on eller dens genvej -ww :

.mode -wrap 20 -ww

Det er det samme som at gøre følgende:

.mode -wrap 20 --wordwrap on

Lad os nu køre forespørgslen 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        |
+---------+---------------------+----------+

Denne gang pakkes ordet "Rock" til næste linje i stedet for at blive skåret af.

En anden mulighed:qbox tilstand

En anden mulighed for at ombryde tekstlinjer er at bruge qbox outputtilstand:

.mode qbox

Det er en genvej til følgende:

.mode box --wrap 60 --quote

Så dette ombryder linjer med 60 tegn, og det citerer strenge som en SQL-bogstav.


  1. Er der en måde at deaktivere opdateringer/sletninger på, men stadig tillade triggere at udføre dem?

  2. Værktøj til oversættelse af Oracle PL/SQL til Postgresql PL/pgSQL

  3. Brug af Sysbench til at generere testdata til Sharded Table i MySQL

  4. Enkelt citat, dobbelt citat og backticks i MySQL-forespørgsler