首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎样批量更新这种超大数据的表,该如何解决

2012-01-16 
怎样批量更新这种超大数据的表表结构项目名称中1代表出租的,2租出的数据是随便输入的.农户代码,项目名称,

怎样批量更新这种超大数据的表
表结构
项目名称中1代表出租的,2租出的
数据是随便输入的.
农户代码,项目名称,水田面积,旱地面积
0001               1                 4                   3
0001               2                 3                   1
0002               1                 2                   0.5
0002               2                 5                   0.25
0003               1                 2                   .8
0003               2                 6                   1.1
........
........
假设现将所有农户项目1的水田面积更新为以对应项目的所有面积*1.2;
旱地地面积更新为以对应项目的所有面积*1.4

项目2的水田面积更新为以对应项目的所有面积*1.3;
旱地面积更新为以对应项目的所有面积*1.5

既是这样:

农户代码,项目名称,水田面积,旱地面积
0001               1                 7*1.2           7*1.4
0001               2                 4*1.3           4*1.5
0002               1                 2.5*1.2       2.5*1.4
0002               2                 5.25*1.3     5.25*1.5
0003               1                 2.8*1.2       2.8*1.4
0003               2                 7.1*1.3       7.1*1.5
........
........

[解决办法]
就这样?
应该不会慢吧,操作很简单啊

[解决办法]
更新按照什么规律啊?
[解决办法]
表没有主键?

[解决办法]
update table1 set 水田面积=
case 项目名称
when 1 then (水田面积+旱地面积)*1.2
when 2 then (水田面积+旱地面积)*1.3
else 水田面积
end
,旱地面积 =
case 项目名称
when 1 then (水田面积+旱地面积)*1.4
when 2 then (水田面积+旱地面积)*1.5
else 旱地面积
end

不过如果数据太大,1亿,够受的。



[解决办法]
update table1 set 水田面积=
case
when 项目名称 = 1 then (水田面积+旱地面积)*1.2
when 项目名称 =2 then (水田面积+旱地面积)*1.3
else 水田面积
end
,旱地面积 =
case
when 项目名称 = 1 then (水田面积+旱地面积)*1.4
when 项目名称 = 2 then (水田面积+旱地面积)*1.5
else 旱地面积
end

热点排行