Sql 使用其他列从JSONB列获取数据
在我的PostgreSQL数据库中,我有以下模式:Sql 使用其他列从JSONB列获取数据,sql,json,postgresql,jsonb,Sql,Json,Postgresql,Jsonb,在我的PostgreSQL数据库中,我有以下模式: CREATE TABLE survey_results ( id integer, domain_name varchar, scores jsonb DEFAULT '{}'::jsonb ); INSERT INTO survey_results (id, domain_name, scores) VALUES (1, 'food_insecurity','{"medica": { "categories"
CREATE TABLE survey_results (
id integer,
domain_name varchar,
scores jsonb DEFAULT '{}'::jsonb
);
INSERT INTO survey_results (id, domain_name, scores)
VALUES (1, 'food_insecurity','{"medica": { "categories": { "food_insecurity": "low", "housing": "high" } } }');
INSERT INTO survey_results (id, domain_name, scores)
VALUES (2, 'housing','{"medica": { "categories": { "food_insecurity": "low", "housing": "high" } } }');
现在,我想让sql查询增加一列。此列应使用域名列值从scores#>'{medica,categories}'
获取分数,因此结果应如下所示:
id | domain_score
----------------------------------
1 | low
2 | high
如何在PostgreSQL中执行此操作
这里是db fiddle与我的db模式:使用
->
和->
您可以使用列名作为操作数,例如:
select *, scores->'medica'->'categories'->>domain_name as domain_scores
from survey_results;