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;
| 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;
| 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.
GO TO FULL VERSION