SQL Academy
Premium
Funktionsreferenz

FORMAT

Baut einen String aus einer Vorlage und setzt Werte an die Stellen von %s, %I und %L.

PostgreSQL 17.9
FORMAT(format_string[, value, ...])
  • [ ]optionaler Teil
  • ...kann wiederholt werden
format_string
Vorlage mit Platzhaltern für Werte
text
value
Einzusetzende Werte, der Reihe nach
Optional

Rückgabewert

String (text)

Beispiele

Werte in eine Vorlage einsetzen

PostgreSQL 17.9
SELECT FORMAT('Hello, %s! You have %s new messages', 'Ann', 5) AS greeting;
greeting
Hello, Ann! You have 5 new messages

Name mit Status und Ausrichtung

PostgreSQL 17.9
SELECT FORMAT('%s (%s)', member_name, status) AS member,
	FORMAT('%-10s|', status) AS padded
FROM FamilyMembers;
memberpadded
Headley Quincey (father)father |
Flavia Quincey (mother)mother |
Andie Quincey (son)son |
Lela Quincey (daughter)daughter |
Annie Quincey (daughter)daughter |
Ernest Forrest (father)father |
Constance Forrest (mother)mother |
Wednesday Addams (daughter)daughter |

NULL, ein String in Anführungszeichen und ein Name

PostgreSQL 17.9
SELECT FORMAT('%s and %s', 'a', NULL) AS with_null,
	FORMAT('%L', 'O''Neil') AS literal,
	FORMAT('%I', 'Order items') AS identifier;
with_nullliteralidentifier
a and 'O''Neil'"Order items"

Details

%s setzt einen Wert als Text ein, %L als String-Literal in einfachen Anführungszeichen und %I als Tabellen- oder Spaltennamen, in doppelten Anführungszeichen nur, wenn es nötig ist, etwa wegen eines Leerzeichens, Großbuchstaben oder eines Schlüsselworts. FORMAT('%I', 'foo') gibt foo zurück, FORMAT('%I', 'Order items') dagegen "Order items". %% gibt ein Prozentzeichen aus.

%s setzt NULL als leeren String ein, %L als Wort NULL ohne Anführungszeichen. Die Breite gibst du mit einer Zahl nach % an: %-10s füllt den Wert rechts mit Leerzeichen auf 10 Zeichen auf.

In MySQL macht die Funktion FORMAT etwas anderes: Sie formatiert eine Zahl mit Tausendertrennzeichen.

Siehe auch