首页 新闻 搜索 专区 学院

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

0
悬赏园豆:20 [已解决问题] 解决于 2013-01-17 15:58

现有表如下:

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

DT2的主页 DT2 | 初学一级 | 园豆:75
提问于:2013-01-16 10:45
< >
分享
最佳答案
0
 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
收获园豆:20
清海扬波 | 小虾三级 |园豆:852 | 2013-01-16 17:36
其他回答(4)
0

没看懂问题

一叶兰舟飘 | 园豆:351 (菜鸟二级) | 2013-01-16 10:57
0

表示看不懂,描述清晰一点

Rich.T | 园豆:3438 (老鸟四级) | 2013-01-16 11:04
0

好深奥的问题呀

苦B程序员 | 园豆:77 (初学一级) | 2013-01-16 13:37
0

UPDATE Table SET value=50 WHERE id2 IN(SELECT id2 FROM Table GROUP BY id2 HAVING COUNT(id2)>1 AND SUM(value)=1)

希望能帮到你!

爬上墙头等红杏。 | 园豆:4 (初学一级) | 2013-01-16 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册