Я не могу найти правильный синтаксис для ссылки на поле JSON в функции PostgreSQL.
Я использую функцию для вызова некоторых значений из всех моих клиентских схем, одна из которых - rule_id,хранится в столбце типа JSON.Как показано ниже:
RETURN QUERY EXECUTE 'SELECT
r.id, r.created, r.type, r.asset_type, r.title, r.amount, r.earning_type, a.user_id, u.customer_id,
r.rule ->>' || 'id' || ' "rule_id"
FROM ' || schemaName || '.reward AS r RIGHT JOIN ' || schemaName || '.avatar AS a ON r.avatar_id = a.id,
_global.user AS u WHERE u.id = a.user_id
'
;
Поле JSON имеет такую структуру, а идентификатор находится на главном пути (например, Id: 93):
object {13}
updated : null
notificationRules [0]
name : Level rule
script : null
levelStart : 500
created : 2018-09-18T20:25:27.488+0000
postRule {12}
id : 93
gamificationEventId : platform.reward.XPChangedEvent
gamification {9}
levelIndex : 2
levelEnd : 1999
Но он возвращает следующееошибка:
ОШИБКА: ссылка на столбец "id" неоднозначна
LINE 3: r.rule - >> id "rule_id"
У кого-нибудь есть идеи?как заставить это работать?