我的带有字段的表已经像这样散列了:
order_id,order_detail_id
// qwe221,jdeiwe
// qwe221,eudasd
kasdaw25,萨德尔夫
kasdaw25,syehsd
kasdaw25,克雷德斯
我想像这样使它更易于维护
order_id,order_detail_id,order_id_alias
// qwe221,jdeiwe,1
// qwe221,eudasd,1
kasdaw25,萨德尔夫,2
kasdaw25,syehsd,2
kasdaw25,kredss,2
请帮助我,逐步解释如何在SQL中进行操作。谢谢!
答案 0 :(得分:3)
使用窗口功能
select *, dense_rank() over(order by order_id) order_id_alias from t
答案 1 :(得分:0)
您可以使用插入,
IN
答案 2 :(得分:0)
您可以使用以下方法更新表格:
update t
set order_id_alias = tt.seqnum
from (select order_id, row_number() over (order by order_id) as seqnum
from t
group by order_id
) tt
where t.order_id = tt.order_id;
注意:您可能需要将order_id_alias
列添加到表中(如果尚未存在的话)。