"name": "BDX",
"unit": "mm",
"value": "20.0",
"data_type": "real",
"iso_class": "boring bar",
"description": "body diameter maximum",
"iso_attribute": "body diameter maximum"
},
]
Как я могу создать новый столбец с именем BDX и конкатенировать description + value + unit в одну строку ?
(select attrs->>'value' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') as "attribute_value_BDX",
(select attrs->>'description' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') as "attribute_description_BDX",
(select attrs->>'unit' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') as "attribute_unit_BDX"
пробую так, но нет идеи как все эти три селекта положить в один столбец с именем attribute_BDX
т.е в итоге я должен получить что-то такое:
attribute_BDX
body diameter maximum 20.0 mm
Новый столбец с именем bdx создаётся через ALTER TABLE ADD COLUMN. Создать в одном запросе сразу и столбец и присвоить ему нетривиальное значение, насколько я знаю, нельзя. Возможно, я совсем непонял вопроса.
видимо я не так объяснил. Я имел ввиду что-то типа такого (select attrs->>'description' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') || ' ' || (select attrs->>'value' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') || ' ' || (select attrs->>'unit' from jsonb_array_elements(ap.attributes) attrs where attrs->> 'name' = 'BDX') as "attribute_BDX",
Учитывая, что в приведённом примере у вас вообще не array -- я непонимаю, зачем вы кидаете на него jsonb_array_elements().
Там array [ {}, {} …. ]
То есть не то, что описания нет -- а дажэ в примере данных написана фигня, а не данные.
Вообще, начните формулировать задачу нормально. Не пытаясь вставить синтаксически некорректные куски непонятно чего.
Пример представлен тут, просто я с телефона и не очень удобно заполнять json объекты
Вы же поняли что я имел ввиду, почему до слов докапываетесь ?
Можэт и понял, можэт и нет. Мне не интересно догадываться. Я в детстве в испорченный телефон поиграл, спасибо. Кроме того, подозреваю, что если вы чётко сформулируете задачу (практически ТЗ), то помощь зала вам и не понадобится.
Исправил. Но я уже решил задачу. Спасибо в любом случае
Обсуждают сегодня