现有表如下:
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语句该怎么写。
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
没看懂问题
表示看不懂,描述清晰一点
好深奥的问题呀
UPDATE Table SET value=50 WHERE id2 IN(SELECT id2 FROM Table GROUP BY id2 HAVING COUNT(id2)>1 AND SUM(value)=1)
希望能帮到你!