CodeGym /Kurse /SQL SELF /Arbeiten mit Strings: LENGTH(), SUBSTRING(), TRIM(), POSI...

Arbeiten mit Strings: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Level 6 , Lektion 0
Verfügbar

Wenn du mit Namen, Adressen, E-Mails oder irgendwelchen anderen Texten arbeitest, musst du fast immer eins von zwei Dingen tun:

  • Einen Teil des Strings extrahieren
  • Die Länge herausfinden
  • Überflüssige Leerzeichen entfernen
  • Ein Fragment finden/ersetzen
  • Die Ausgabe formatieren

Zum Beispiel musst du vielleicht:

  • Nur den Nachnamen aus dem vollständigen Namen anzeigen.
  • Studenten finden, deren Nachname mit „P“ beginnt.
  • Alle Leerzeichen durch Unterstriche ersetzen.
  • Den Nachnamen mit einem Großbuchstaben ausgeben.

All diese Aufgaben lassen sich easy mit den String-Funktionen von PostgreSQL lösen.

LENGTH() — String-Länge

Die Funktion LENGTH() gibt die Anzahl der Zeichen im String zurück.

Syntax:

LENGTH(string)

Beispiel:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Praktisch, um die Länge von Namen, Passwörtern und anderen Texten zu checken.

SUBSTRING() — Teil eines Strings extrahieren

Damit kannst du einen Teilstring aus einem String holen – zum Beispiel die ersten 3 Buchstaben vom Nachnamen oder die Domain aus einer E-Mail.

Syntax:

SUBSTRING(string FROM start FOR length)
  • start — Position des ersten Zeichens (Zählung ab 1)
  • length — wie viele Zeichen extrahiert werden sollen

Beispiel 1: die ersten 3 Buchstaben des Nachnamens

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Beispiel 2: Domain der E-Mail

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — überflüssige Leerzeichen entfernen

Entfernt Leerzeichen (und andere Zeichen) am Anfang und/oder Ende eines Strings.

Syntax:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Meistens benutzt man aber einfach:

TRIM(string)

Beispiel:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

Gerade wichtig, wenn User Daten manuell eingeben (z.B. mit Leerzeichen am Anfang).

POSITION() — Teilstring suchen

Gibt die Position zurück, an der der Teilstring beginnt.

Syntax:

POSITION(substring IN string)

Beispiel:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Kannst du zusammen mit SUBSTRING() nutzen, um Teile eines Strings zu extrahieren.

REPLACE() — Teilstring ersetzen

Ersetzt alle Vorkommen eines Teilstrings durch einen anderen.

Syntax:

REPLACE(string, from_substring, to_substring)

Beispiel: Leerzeichen durch Unterstriche ersetzen

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — erster Buchstabe groß

Formatiert den String so, dass der erste Buchstabe jedes Wortes groß ist, die anderen klein.

Syntax:

INITCAP(string)

Beispiel:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Sehr praktisch, um Namen zu standardisieren.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION