Учитывая набор результатов, который находится в структуре EAV, такой как:
id | attributeName | stringValue | intValue | BooleanValue
---------------------------------------------------------------
1 stringFoo v1
1 stringFooList v2
1 stringFooList v3
1 intFoo 10
1 intFooList 10
1 intFooList 20
1 booleanFoo true
1 booleanFooList true
1 booleanFooList true
Как я могу выбрать все атрибуты и пару значений как одно значение в формате JSON / JSONB, что-то вроде:
{
"stringFoo" : "v1" ,
"stringFooList" : ["v2","v3"] ,
"intFoo" : 10 ,
"intFooList" : [10,20],
"booleanFoo" : true,
"booleanFooList" : [true,true]
}
Если для атрибута существует несколько значений атрибута, например stringFooList
, он будет отформатирован как массив JSON.
Я использую PostgreSQL 9,6