我需要在下表中添加一个订单栏:
| Id | DepId | Name |
|----|-------|-------|
| 1 | 1 | Bill |
| 2 | 1 | Joe |
| 3 | 2 | Jack |
| 4 | 1 | Jill |
应该成为:
| Id | DepId | Name | Order |
|----| ------|-------|-------|
| 1 | 1 | Bill | 1 |
| 2 | 1 | Joe | 2 |
| 3 | 2 | Jack | 1 |
| 4 | 1 | Jill | 3 |
我知道让我们按ID使用订单,并且不用担心这样的订单栏,但在这种情况下,当条目转移时难度会增加。
答案 0 :(得分:1)
您正在寻找ROW_NUMBER()OLAP函数...
您可以(应该)创建一个视图,而不是将列实际添加到物理表中:
create view myview as
(select Id, DepId, Name
, ROW_NUMBER() OVER(PARTITION BY DepId ORDER BY DepId, ID) as OrderNbr
from mytable
)