1
我有存儲在JSONB場在我的PostgreSQL 9.5 DB JSON數據。清潔的方式來查詢複雜的JSON在PostgreSQL
有沒有辦法在不知道哪一列是子對象的情況下製作子對象列?
JSON例子問題:
{
"a":1,
"b":[1,2,3],
"c":"bar",
"d":{
"key1":"value1",
"key2":"value2"
}
}
我可以使用以下方法來獲取所有的鍵從一個JSON對象。
SELECT * FROM json_object_keys('{"a":1,"b":[1,2,3],"c":"bar", "d":{"key1":"value1", "key2":"value2"}}')
在這一點上,我可以再使用json_to_record(),但我想列打出自己獨立的領域。
select * from json_to_record('{"a":1,"b":[1,2,3],"c":"bar", "d":{"key1":"value1", "key2":"value2"}}') as x(a int, b text, c text, d text)
讓我
a| b | c | d
1| [1,2,3] | bar | {"key1":"value1", "key2":"value2"}
有沒有辦法讓這樣的事情回來,最好是在一個單一的查詢?
--------------------------------------------------------------------
a| b | c | d | key1 | key2
1| [1,2,3] | bar | {"key1":"value1", "key2":"value2"} |value1 |value2
謝謝!那讓我95%。如果您不明確知道D是另一個JSON對象,是否有任何方法可以爲該級別上的所有對象生成jsonb_to_record(v - >'d')?我發現了一個獲取類型的json_typeof()表函數。從另一個查詢生成SQL是否是一種不好的做法?挑戰來源於提取構建Microsoft Word文檔的表格內容。我們不知道每個表有多少列,我們不知道列的名稱。從表到表都沒有任何列標題名稱或列之間的列數一致。 –