如图所示,默认的查询出的信息如上,我现在想要的操作是,p_id的排序方式递增,而对应的pc_id改成 1、2、3、4、5..这样一次递增,先贴出我的处理方式--(mysql中的处理)set @rownum=0;update productSET pc_id = (select @rownum := @rownum +1 as nid) ORDER BY p_id asc可是这种在mysql中可以,但在sql server中不行,大神你们的方法怎样?
1 回答
Qyouu
TA贡献1786条经验 获得超11个赞
自增序号使用row_number函数,sqlserver 2008支持merge的写法,如:
merge t as target
using (select p_id, row_number() over (order by p_id) as pc_id_seq from t ) as source
on (target.p_id = source.p_id)
when matched then
update set target.pc_id = source.pc_id_seq;
- 1 回答
- 0 关注
- 2151 浏览
添加回答
举报
0/150
提交
取消