2016-11-16 19 views
0

我想創建添加一列到表,但我卡住試圖找出一種方法來分配序列號到這個列。如何從表中讀取數據並分配序列號?

以下是我有:

ID   C_Seq_No  D_Seq_No   Type 
123    1    NULL   02 
123    1    NULL   04 
123    1    NULL   06 
123    2    NULL   03 
123    2    NULL   05 
123    2    NULL   07 

這是我想在我的表:

ID   C_Seq_No  D_Seq_No   Type 
123    1    1    02 
123    1    2    04 
123    1    3    06 
123    2    1    03 
123    2    2    05 
123    2    3    07 

謝謝您的幫助!

+0

你一定要'update'表? –

回答

4

您正在尋找row_number()

select t.*, 
     row_number() over (partition by id, c_seq_no order by type) as d_seq_no 
from t; 

如果你需要的是一個更新,您可以使用可更新的CTE:

with toupdate as (
     select t.*, 
      row_number() over (partition by id, c_seq_no order by type) as new_d_seq_no 
     from t 
    ) 
update toupdate 
    set d_seq_no = new_d_seq_no; 
相關問題