表格式如下 NO VAL 1 0 2 0 3 12 希望用一条SQL语句实现:NO=2的VAL 等于 NO=3的VAL 然后NO=1的VAL等于NO=2的VAL+NO=3的VAL 结果应该是 NO VAL 1 24 2 12 3 12这样的说法可能明白点……
为什么要一条实现? 实际上你的说法可以换种,就能解决了 NO=2的VAL = NO=3的VAL ; NO=1的VAL = NO=2的VAL+NO=3的VAL = NO=3的VAL *2;这样就会了! update table val = (2/no) * (select val from table where no=3) --按照你的no,还可以这样写;否则要写case when活decode了 where no in (1,2);
update table a set val=(select val from table b where b.no=3) where a.no=2; update table a set val=(select val*2 from table b where b.no=3) where a.no=1;
NO VAL
1 0
2 0
3 12 希望用一条SQL语句实现:NO=2的VAL 等于 NO=3的VAL
然后NO=1的VAL等于NO=2的VAL+NO=3的VAL 结果应该是
NO VAL
1 24
2 12
3 12这样的说法可能明白点……
实际上你的说法可以换种,就能解决了
NO=2的VAL = NO=3的VAL ;
NO=1的VAL = NO=2的VAL+NO=3的VAL = NO=3的VAL *2;这样就会了!
update table
val = (2/no) * (select val from table where no=3) --按照你的no,还可以这样写;否则要写case when活decode了
where no in (1,2);
update table a set val=(select val*2 from table b where b.no=3) where a.no=1;