我在postgres中有一个表,其中包含一个具有json[]
数据类型的字段。
此列中存储数据的结构如下:
[{
"sym": "BTC",
"enn": "Bitcoin",
"fan": "",
"prc": 7284.46,
"c24": -4.33,
"mkc": 124460367747.02,
"mkp": 0
}, {
"sym": "ETH",
"enn": "Ethereum",
"fan": "",
"prc": 571.735,
"c24": -5.23,
"mkc": 57166582578.235,
"mkp": 0
}, {
"sym": "XRP",
"enn": "Ripple",
"fan": "",
"prc": 0.625291,
"c24": -6.28,
"mkc": 24539115471.842476,
"mkp": 0
}, {
"sym": "BCH",
"enn": "Bitcoin Cash",
"fan": "",
"prc": 1034.65,
"c24": -7.09,
"mkc": 17771148400,
"mkp": 0
}, {
"sym": "EOS",
"enn": "EOS",
"fan": "",
"prc": 13.2186,
"c24": -7.95,
"mkc": 11845841674.9512,
"mkp": 0
}]
我需要的是使用特定的"sym"
键来获取json。像这样:
{
"sym": "BTC",
"enn": "Bitcoin",
"fan": "",
"prc": 7284.46,
"c24": -4.33,
"mkc": 124460367747.02,
"mkp": 0
}
我尝试过:
select to_json(data)::json ->'sym'->'BTC'from my_table;
但是它不起作用。我知道它不起作用,因为我的字段是一个数组,而不是json
并尝试了
select json_array_elements(to_json(data)::json->'sym'->'BTC') from my_table;
,但是它也不起作用。 有帮助吗?
答案 0 :(得分:0)
您是否尝试过使用CTE
?当然,还有其他许多方法可以做到这一点,但是我发现CTE非常优雅且易于阅读。
convertTimestamp('1395660658')