에서 JSON 개체로부터 값 I이 유사한 콘텐츠를 갖는 포스트 그레스 테이블을 갖는다.추출 키 포스트 그레스
id | key | value
1 | a | 4
1 | b | 5
2 | a | 6
2 | b | 7
3 | a | 8
3 | b | 9
이이 포스트 그레스 SQL 달성 될 수있다 : 결과는 다음과 같습니다 있도록
는 내가 JSON에서 키와 값을 확장 할 수있게하려면? 원래 테이블과 같은 시뮬레이션 할 수 있다는 것을 나는 감안할 때
을 시도했습니다 무엇
:
select *
from
(
values
(1, '{"a":"4", "b":"5"}'::json),
(2, '{"a":"6", "b":"7"}'::json),
(3, '{"a":"8", "b":"9"}'::json)
) as q (id, data)
내가 사용 단지 키를 얻을 수 있습니다 :
select id, json_object_keys(data::json)
from
(
values
(1, '{"a":"4", "b":"5"}'::json),
(2, '{"a":"6", "b":"7"}'::json),
(3, '{"a":"8", "b":"9"}'::json)
) as q (id, data)
그리고 나는 이것들을 다음과 같이 레코드 세트로 얻을 수 있습니다 :
select id, json_each(data::json)
from
(
values
(1, '{"a":"4", "b":"5"}'::json),
(2, '{"a":"6", "b":"7"}'::json),
(3, '{"a":"8", "b":"9"}'::json)
) as q (id, data)
그러나 id, key 및 value를 사용하여 결과를 얻는 방법을 배울 수 없습니다.
아이디어가 있으십니까?
참고 : 실제로 작업하고있는 json은 이보다 중첩되어 있지만이 예제는 내 근본적인 문제를 잘 나타냅니다.
[postgresql 9.4 jsonb를 함수/서버 측 언어없이 객체로 변환하는 방법] (http://stackoverflow.com/questions/27181980/how-to-convert-postgresql-9-4-jsonb-to -object-without-function-server-side-langu) – e4c5
컬럼이 아닌'json_object_keys' 또는'json_each' 함수를 테이블로 사용하십시오 :'select id, j.key, my_table의 j.value, json_each (data) j' – Abelisto
감사합니다. Abelisto. 확실히 나는 당신이 제안하는 쿼리를 사용하여 찾고있는 테이블이 아닌 전체 데카르트 제품으로 끝낼 것입니까? –