2016-02-23 2 views
0

У меня есть следующие схемы в красном смещении (столбец ID и словарь JSon в виде строки)Преобразовать JSON словарь столбец строк пары ключ-значение (Redshift + PostGreSQL)

id data 
1 {'1': 'true', '2':'false'} 
2 {'1': 'false', '3':'true'} 

, и я хотел бы преобразовать это:

id key value 
1 '1' 'true' 
1 '2' 'false' 
2 '1' 'false' 
2 '3' 'true' 

Что было бы подходящим для этого вопросом postgresql? Я попытался использовать JSON_EXTRACT_PATH_TEXT, но тогда мне нужно объединить все отдельные ключи, и я имею дело с сотнями ключей.

ответ

0

что-то вроде

select id,json_object_keys(t.data) as key,data->json_object_keys(t.data) as value from t; 

http://sqlfiddle.com/#!15/781fd/10

+0

К сожалению, красное смещение использует PostgreSQL 8,1, так что функция JSON из более поздних версий PostgreSQL не работают. Приведенное выше дает мне следующую ошибку "[42883] ОШИБКА: функция json_object_keys (" unknown ") не существует" –

Смежные вопросы