数据格式
record_id | question_name | answer_content |
1 | 学校 | 211大学 |
1 | 学院 | 信息工程学院 |
1 | 年级 | 大三 |
1 | 班级 | 2 |
1 | 用户身份 | 学生 |
SQL
select concat('{',string_agg(strjson,','), '}' )::jsonb as strjson
from (SELECT concat('"',question_name,'":','"',
REPLACE(question_value'"','\"'), '"')as strjson
FROM exam_answer_details where record_id='1' and answer_score is null)as A
查询结果:
{"学校": "211大学", "学院": "信息工程学院", "年级": "大三", "班级": "2", "用户身份": "学生"}
涉及函数说明:
REPLACE:字符串替换方法,这里替换"为\",避免与外层的"冲突,导致json解析失败
用法:REPLACE(字段名,'旧字符串','替换后的新字符串')
concat:字符串拼接,
用法:concat('字符串1','字符串2',...)
string_agg:聚合函数,用于连接字符串列表并在字符串之间放置分隔符。
用法:string_agg( 字段名, 分隔符)