首页新闻找找看学习计划

关于SQLServer的update多条记录并设置不同值的问题

1
悬赏园豆:100 [已解决问题] 解决于 2015-11-25 10:44

场景:原表A,含有id、groupid等字段,现在需要维护数据,添加字段col 。现在要以groupid分组,每一组记录数不定,但是想把col字段在每一组中都自增处理。请问博友们如何实现?在下谢谢啦

问题补充:

关键我想知道大家具体怎么实现的- -

venjianX的主页 venjianX | 初学一级 | 园豆:118
提问于:2015-11-20 10:47
< >
分享
最佳答案
0

在mysql中测试可行,看看是否可以改成sqlserver的?

CREATE TEMPORARY TABLE tmp_A AS SELECT `id`,`groupid` FROM `A`;
UPDATE `A` SET `col`=(SELECT COUNT(`groupid`) FROM tmp_A WHERE `groupid`=`A`.`groupid` AND `id`<=`A`.`id`) ORDER BY `id`;
收获园豆:80
宁涛 | 菜鸟二级 |园豆:348 | 2015-11-24 17:13

厉害!简洁明了。

venjianX | 园豆:118 (初学一级) | 2015-11-25 10:43
其他回答(6)
0

多表联合更新

收获园豆:10
吴瑞祥 | 园豆:28731 (高人七级) | 2015-11-20 11:03

 看在100分的份上。

方法肯定有很多,我知道的2个:

1.使用update命令,建个临时表。然后使用多表联合更新。具体命令查百度。

2.使用merge into命令,使用更新部分不用插入部分。

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2015-11-23 09:21
0

写个复杂一点的存储过程,用游标。

或者写段代码完成就行了。

收获园豆:5
爱编程的大叔 | 园豆:29818 (高人七级) | 2015-11-20 11:03
0

写个存储过程或者事务就可以了

seayxu | 园豆:5468 (大侠五级) | 2015-11-20 11:34
0

用sql实现,哈哈哈

逐梦者66 | 园豆:106 (初学一级) | 2015-11-20 13:52
0

用存储过程好实现

向量 | 园豆:156 (初学一级) | 2015-11-20 14:10
0

你这个我不清楚了,我的思路是在程序里面实现,首先查询到该groupid下最大的col,为空是将groupid第一条数据的col赋值为1,其他的一次加1

收获园豆:5
如此低调的男人 | 园豆:840 (小虾三级) | 2015-11-20 16:40

在程序中实现是可以的。

支持(0) 反对(0) venjianX | 园豆:118 (初学一级) | 2015-11-20 16:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册