2016-11-16 6 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 

はあなたの助けをありがとう!あなたがrow_number()を探している

+0

あなたは 'テーブルをupdate'なければならないのですか? –

答えて

4

:あなたが実際に更新をしたい場合は

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; 
関連する問題