"동적으로"설정할 수 없습니다. 갖고 싶은 열을 지정해야합니다.
select name, description, id,
data ->> 'tax' as tax,
data ->> 'other_attribute' as other_attribute
from core;
많은 작업을 수행하는 경우보기에 넣을 수 있습니다.
다른 옵션은 JSON의 속성을 나타내는 객체 유형을 Postgres에 만드는 것입니다.
create type core_type as (id integer, tax numeric, price numeric, code varchar);
당신은 그 유형으로 JSON을 캐스팅 할 수 있으며 JSON에서 해당 속성이 자동으로 열로 변환됩니다 : {"id": "100", "tax": "4.5", "price": "10", "code": "YXCV"}
당신이 할 수 있습니다 :
위의 유형으로
다음과 같은 JSON
을
select id, (json_populate_record(null::core_object, data)).*
from core;
그것은 반환합니다
id | tax | price | code
---+------+-------+-----
1 | 4.50 | 10 | YXCV
그러나 모든 JSON 값 이이 해당 오브젝트 필드의 유형으로 형변환 될 수 있는지 확인해야합니다.
개체 유형을 변경하면 해당 개체 유형을 사용하는 모든 쿼리가 자동으로 업데이트됩니다. 따라서 중심 정의를 통해 관심있는 열을 관리 할 수 있습니다.
보기 [포스트 그레스 :?를 JSONB 필드에서 집계 키/값 쌍을 병합 (http://stackoverflow.com/a/ 35179515/1995738) – klin