想根据商品编号和进价两个字段进行排序,商品编号相同的按进价排序,实际以下效果
商品编号 进价 采购员 排序
100006 11.900000 陈雅 1
100006 11.800000 王玲波 2
100006 11.700000 张红 3
100008 2.790000 陈雅 1
100008 2.780000 王玲波 2
100008 2.750000 张红 3
100012 6.600000 陈雅 1
100012 6.400000 王玲波 2
100012 6.000000 王玲波 3
这个SQL语句应该如何写?
------解决方案--------------------
- SQL code
declare @A table(商品编号 int,进价 decimal(18,6),采购员 nvarchar(4))insert into @Aselect 100006, 11.900000, N'陈雅' union allselect 100006, 11.800000, N'王玲波' union allselect 100008, 2.780000, N'王玲波' union allselect 100008, 2.750000, N'张红' union allselect 100012, 6.600000, N'陈雅' union allselect 100012, 6.400000, N'王玲波' union allselect 100012, 6.000000, N'王玲波' union allselect 100006, 11.700000, N'张红' union allselect 100008, 2.790000, N'陈雅'select *,row_number() over(partition by 商品编号 order by 商品编号,进价 desc) rn from @A/*(9 row(s) affected)商品编号 进价 采购员 rn----------- --------------------------------------- ---- --------------------100006 11.900000 陈雅 1100006 11.800000 王玲波 2100006 11.700000 张红 3100008 2.790000 陈雅 1100008 2.780000 王玲波 2100008 2.750000 张红 3100012 6.600000 陈雅 1100012 6.400000 王玲波 2100012 6.000000 王玲波 3(9 row(s) affected)*/