Справочник по функциям

FORMAT

Собирает строку по шаблону, подставляя значения на места %s, %I и %L.

PostgreSQL 17.9
FORMAT(format_string[, value, ...])
  • [ ]необязательная часть
  • ...можно повторить
format_string
Шаблон с местами подстановки значений
text
value
Значения для подстановки по порядку
Необязательный

Возвращаемое значение

Строка (text)

Примеры

Подстановка значений в шаблон

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

Имя со статусом и выравнивание

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, строка в кавычках и имя

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"

Подробности

%s вставляет значение как текст, %L — как строковую константу в одинарных кавычках, а %I — как имя таблицы или столбца: в двойных кавычках, только если без них нельзя, например из-за пробела, заглавных букв или ключевого слова. FORMAT('%I', 'foo') вернёт foo, а FORMAT('%I', 'Order items') — "Order items". %% выводит знак процента.

%s вставляет NULL как пустую строку, а %L — как слово NULL без кавычек. Ширину задают числом после %: %-10s дополняет значение пробелами справа до 10 символов.

В MySQL функция FORMAT делает другое — форматирует число с разделителями разрядов.

Смотрите также