2015-07-22 35 views
-2

我需要一個命令列添加到下表中的位置:添加訂單列中的值是在表中考慮的分組標識(DB2)

| 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使用順序,不用擔心這樣的順序欄,但在這種情況下,當條目移動時難度會增加。

回答

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 
) 
相關問題