猿问

关于sql 数据类型转换的问题

现有表如下:

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语句该怎么写。

动漫人物
浏览 461回答 5
5回答

浮云间

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

UPDATE Table SET value=50 WHERE id2 IN(SELECT id2 FROM Table GROUP BY id2 HAVING COUNT(id2)>1 AND SUM(value)=1) 希望能帮到你!
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答