我正在尝试创建一个列添加到表,但我试图找出一种方法为此列分配序列号。
这就是我所拥有的:
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 :(得分: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;