【发布时间】:2021-08-02 11:31:47
【问题描述】:
我有一个项目表,这些项目可以与日期或类别相关联或两者兼而有之。
我现在需要更新一个排序列,以便我可以在屏幕上对项目进行排序,所以是这样的;
| Item | Category | Date |
|---|---|---|
| Item1 | Cat1 | 02/08/21 |
| Item2 | Cat2 | 03/08/21 |
| Item3 | Cat1 | 03/08/21 |
| Item4 | Cat1 | 03/08/21 |
| Item5 | Cat2 | 02/08/21 |
| Item6 | Cat2 | 03/08/21 |
但是当我添加了排序列后,我需要它以这样的方式结束;
| Item | Category | Date | Order |
|---|---|---|---|
| Item1 | Cat1 | 02/08/21 | 1 |
| Item5 | Cat2 | 02/08/21 | 1 |
| Item3 | Cat1 | 03/08/21 | 1 |
| Item4 | Cat1 | 03/08/21 | 2 |
| Item6 | Cat2 | 03/08/21 | 1 |
| Item2 | Cat2 | 03/08/21 | 2 |
所以它会执行类似“从按类别升序排列的项目中选择*,日期升序”然后它给每个“分组”一个计数,从 1 开始并为该组的每个成员递增,然后为下一组返回 1 . 因此,给具有相同类别和日期的项目一个订单,然后给下一组具有相同类别但不同日期的项目再次从 1 开始的订单,依此类推。
希望我已经正确解释了这一点......
【问题讨论】:
标签: sql-server sorting