Database
 sql >> Datenbank >  >> RDS >> Database

So trimmen Sie Zeichenfolgen in SQL

Problem:

Sie möchten bestimmte Zeichen am Anfang und am Ende einer Zeichenfolge entfernen.

Beispiel:

Unsere Datenbank hat eine Tabelle namens post mit Daten in zwei Spalten:id und title .

id Titel
1 'Neuigkeiten rund um den Hund'
3 „Eurovision 2019“
4 „Neues politisches Klima“

Lassen Sie uns den Titel jedes Beitrags kürzen, um den unnötigen Platz am Anfang und am Ende zu entfernen.

Lösung:

Wir verwenden den TRIM Funktion. Hier ist die Abfrage, die Sie schreiben würden:

SELECT TRIM( BOTH ' ' FROM title ) as new_title
FROM post;

Alternativ können Sie die kürzere Version ohne BOTH verwenden Stichwort; standardmäßig TRIM behandelt dies als BEIDE Operation.

SELECT TRIM(' ' FROM title ) as new_title
FROM post;

Hier ist das Ergebnis beider Abfragen:

new_title
„Neues über Hunde“
„Eurovision 2019“
„Neues politisches Klima“

Diskussion:

Verwenden Sie den TRIM -Funktion, wenn Sie eine Zeichenfolge in einer Tabelle kürzen möchten. Mit dieser Funktion können Sie ein bestimmtes Zeichen am Anfang oder Ende einer Zeichenfolge oder an beiden Enden entfernen. Diese Funktion akzeptiert die folgenden Argumente:

  • Ein Schlüsselwort, das die Enden angibt, von denen abgeschnitten werden soll (optional – BOTH standardmäßig).
  • Das Zeichen, das Sie aus der Zeichenfolge entfernen möchten.
  • Der FROM Schlüsselwort, gefolgt vom Namen der zu trimmenden Zeichenfolgenspalte.

In unserem Beispiel sieht das so aus:

TRIM( BOTH ' ' FROM title )

Wie oben erwähnt, TRIM kann andere Schlüsselwörter als erstes Argument annehmen. Zusätzlich zum Trimmen an beiden Enden ermöglicht es uns, ein Zeichen nur am Ende einer Zeichenfolge oder nur am Anfang zu entfernen:

  • TRAILING (am Ende entfernen)
  • LEADING (vom Anfang entfernen)

Das folgende Beispiel entfernt den Leerraum am Ende jedes Titels (kann aber genauso gut verwendet werden, um den Leerraum am Anfang zu kürzen, wenn Sie den LEADING verwenden statt Schlüsselwort):

SELECT TRIM( TRAILING ' ' FROM title ) as new_title
FROM post;

Die Abfrage gibt den title zurück Spalte ohne Leerzeichen am Ende. Beachten Sie, dass die Leerzeichen am Anfang unberührt bleiben.

new_title
„Neuigkeiten rund um den Hund“
„Eurovision 2019“
„Neues politisches Klima“