现有表如下:
id id2 value
--------------------
1 1 1/2
2 1 1/2
3 2 50
4 2 50
上表中value的数据类型为varchar。id2相同的情况下,每个id对应的value的和为1或100。
现在要把表转换成:
id id2 value
--------------------
1 1 50
2 1 50
3 2 50
4 2 50
对应的sql语句该怎么写。
5 回答
浮云间
TA贡献1829条经验 获得超4个赞
1 create table #t(id int, id2 int,value varchar(50)) 2 insert #t 3 select 1,1,'1/2' 4 union all 5 select 2,1,'1/2' 6 union all 7 select 3,2,'50' 8 union all 9 select 4,2,'50' 12 update #t 13 set value=100*1.0/a.cnt 14 from (select id2,count(1)as cnt from #t group by id2)a 15 where #t.id2=a.id2 16 select * from #t
ibeautiful
TA贡献1993条经验 获得超5个赞
UPDATE Table SET value=50 WHERE id2 IN(SELECT id2 FROM Table GROUP BY id2 HAVING COUNT(id2)>1 AND SUM(value)=1)
希望能帮到你!
- 5 回答
- 0 关注
- 460 浏览
添加回答
举报
0/150
提交
取消