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

JSONB_EXTRACT_PATH_TEXT

Возвращает как текст значение из JSON по пути из ключей.

PostgreSQL 17.5
JSONB_EXTRACT_PATH_TEXT(from_json, path[, ...])

Параметры

from_jsonjsonb
Значение типа jsonb
pathtext
Ключи или номера элементов массива по порядку вложенности

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

Строка (text); NULL, если такого пути нет

Примеры

Город из вложенного объекта

PostgreSQL 17.5
SELECT JSONB_EXTRACT_PATH_TEXT(
		'{"user": {"name": "Ann", "city": "Paris"}}',
		'user',
		'city'
	) AS city;
city
Paris

Промокод из данных события

PostgreSQL 17.5
SELECT event_id,
	JSONB_EXTRACT_PATH_TEXT(metadata, 'promo_code') AS promo_code
FROM events
LIMIT 5;
event_idpromo_code
1SUMMER20
2<NULL>
3NEWYEAR
4<NULL>
5SUMMER20

Подробности

Делает то же, что цепочка операторов: JSONB_EXTRACT_PATH_TEXT(data, 'user', 'city') равно data -> 'user' ->> 'city'. Для типа json есть JSON_EXTRACT_PATH_TEXT, а вернуть значение как JSON можно через JSONB_EXTRACT_PATH.

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