没有试,大概如下select max(decode(unit_system,'Englist',unit,null)) unit_english, max(decode(unit_system,'Englist',scale,null)) scale_english, max(decode(unit_system,'Metric',unit,null)) unit_metric, max(decode(unit_system,'Metric',scale,null)) scale_metric from 你的表 group by id;
只有Englist和Metric吗,如果只有这两项,那就EASY了,还有ID是主键吧select x.id,x.unit as unit_english,x.scale as scale_english,y.unit as unit_Metric,y.scale as scale_Metric from (select id,unit_system,scale,unit from table_name where unit_system='Englist')x inner join (select id,unit_system,scale,unit from table_name where unit_system='Metric')y on x.id=y.id
没有试,大概如下select
max(decode(unit_system,'Englist',unit,null)) unit_english,
max(decode(unit_system,'Englist',scale,null)) scale_english,
max(decode(unit_system,'Metric',unit,null)) unit_metric,
max(decode(unit_system,'Metric',scale,null)) scale_metric
from 你的表
group by id;
(select id,unit_system,scale,unit from table_name where unit_system='Englist')x
inner join
(select id,unit_system,scale,unit from table_name where unit_system='Metric')y
on x.id=y.id