首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL非一般排序

2012-09-02 
SQL特殊排序想根据商品编号和进价两个字段进行排序,商品编号相同的按进价排序,实际以下效果商品编号 进价

SQL特殊排序
想根据商品编号和进价两个字段进行排序,商品编号相同的按进价排序,实际以下效果

商品编号 进价 采购员 排序
10000611.900000陈雅1
10000611.800000王玲波2
10000611.700000张红3
1000082.790000陈雅1
1000082.780000王玲波2
1000082.750000张红3
1000126.600000陈雅1
1000126.400000王玲波2
1000126.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)*/ 

热点排行