запрос:
SELECT
id,
list.value->>'itemId' as itemId
FROM
"public"."some_table"
INNER JOIN LATERAL jsonb_array_elements(CAST("public"."some_table"."list" AS jsonb)) skus ON true
Но на некоторых строках он возвращает ошибку Error occurred while trying to execute a query: [SQLState 22023] ERROR: cannot extract elements from an object. Лезу смотреть в базу. В одном значении в поле лежит типа такого:
[{"itemId":"........" и тд
В другом значении в поле типа такого:
{"xxx":{"itemId":"........" и тд
Вопрос - можно ли в рамках одного запроса как то? Или надо два разных запроса делать потому что единой структуры я не вижу.
версия пг какая? смотреть в сторону jsonpath если 12 и выше
Понял. Спасибо. Выше 12 на сколько я понимаю.
Можно, конечно. Можно через case проверять что там лежыт, можно через jsonpath вроде. И потом выдавать нужную часть.
Обсуждают сегодня