oracle可以写吗?在sql2000运行可以的。在oracle运行报错。update gy_ylsf set gy_ylsf.fygb = gy_sfxm.sfxm
from gy_ylsf
left outer join gy_sfxm on gy_sfxm.pydm=gy_ylsf.bh;
from gy_ylsf
left outer join gy_sfxm on gy_sfxm.pydm=gy_ylsf.bh;
update gy_ylsf a set a.fygb = (select min(sfxm) from gy_sfxm where a.bh = pydm);
这样写试试!
--方法1
UPDATE gy_ylsf a
SET a.fygb =
(SELECT b.sfxm FROM gy_sfxm b WHERE b.pydm = a.bh)
WHERE EXISTS (SELECT 1 FROM gy_sfxm b WHERE b.pydm = a.bh);
--方法2
MERGE INTO gy_ylsf a
USING gy_sfxm b
ON (b.pydm = a.bh)
WHEN MATCHED THEN
UPDATE SET a.fygb = b.sfxm;--方法3
UPDATE (SELECT /*+bypass_ujvc*/
a.fygb a_fygb, b.sfxm b_sfxm
FROM gy_ylsf a, gy_sfxm b
WHERE b.pydm = a.bh)
SET a_fygb = b_sfxm;