CREATE TABLE highTable
(
id serial NOT NULL,
value integer,
name character varying,
zbfm character varying,
CONSTRAINT pkey PRIMARY KEY (id)
)
insert into highTable values ('甲','年龄',12);
insert into highTable values ('甲','身高',95);
insert into highTable values ('甲','体重',31);
insert into highTable values ('乙','年龄',13);
insert into highTable values ('乙','身高',67);
insert into highTable values ('乙','体重',23);
insert into highTable values ('丙','年龄',15);
insert into highTable values ('丙','身高',85);
insert into highTable values ('丙','体重',56);
insert into highTable values ('丁','身高',89);
insert into highTable values ('丁','年龄',36);
insert into highTable values ('丁','体重',76);
select name
,string_agg((case zbfm when '年龄' then value::varchar end),'') as 年龄
,string_agg((case zbfm when '身高' then value::varchar end),'') as 身高
,string_agg((case zbfm when '体重' then value::varchar end),'') as 体重
from highTable
GROUP BY 1;