你这个如果这几个字段的话,很可能单价1和单价2会串到另一个位置给你在sqlserver下写了一个创建表create table A产品编号 varchar3,名称 varchar10,单价 int,数量 int,金额 intinsert into A values ''001'',''记事本'',12,10,120insert into A values ''002'',''计算机'',20,42,840insert into A values ''001'',''记事本'',25,33,825insert into A values ''002'',''计算机'',13,12,156执行查询select t.产品编号,t.名称,maxcase when rn=1 then 单价 end 单价1,maxcase when rn=2 then 单价 end 单价2fromselect *,row_number over partition by 产品编号 order by 名称 rn from A tgroup by t.产品编号,t.名称结果不过这个查询,可以写成select 产品编号,名称,min单价 单价1,max单价 单价2from Agroup by 产品编号,名称如果需要不串的话,可能需要其他字段辅助,比如主键id,或者信息录入时间等,总之是一个能排序的字段。
黄盛璋2019-11-06 15:37:47