sql update 子查询修改

来源:百度知道 编辑:UC知道 时间:2024/05/30 20:01:07
我有个表t
r1 r2 r3
1 2 a
2 2 b
3 3 c
我想实现update t set r2=(select r2 from t where r2=(外面的r2)) where r2=3 也就是第三行的R2就变成2了.
我试过update t A set r2=(select r2 from t B where B.r2=A.r2) where r2=3 这样说有语法错误..不知道怎么样实现 B.r2=A.r2有效果SELECT里面是这可以的,
update thenum=(select thenum from socres where thedate='2008-1-1' ) where thedate='2008-1-2' and stuid=22 我想使里面的STUID=外面的..因为要更新很多条.不能直接把22写上去

我试过update t A set r2=(select r2 from t B where B.r2=A.r2) where r2=3 这样说有语法错误..

这句话是错的

应该是这样:
update t set r2=(select r2 from t B,T A where B.r2=A.r2)
where r2=3
但是我不明白你的意思B.r2=A.r2??什么意思??

你HI我把

update t A set r2=(select TOP 1 r2 from t B where B.r2=A.r2) where r2=3

不用别名,用户表明.字段名,试试

update t set r2 = (select distinct r2 from t where r2 <> 3) where r2 = 3