dm mc ssdm ssmc
01 a
02 b
03 c 01
04 d 02
05 e 03 表如上。所属名称(ssmc)这个字段为空 ,现在想通过一条sql语句更新ssmc字段
实现的效果如下:
dm mc ssdm ssmc
01 a
02 b
03 c 01 a
04 d 02 b
05 e 03 c
01 a
02 b
03 c 01
04 d 02
05 e 03 表如上。所属名称(ssmc)这个字段为空 ,现在想通过一条sql语句更新ssmc字段
实现的效果如下:
dm mc ssdm ssmc
01 a
02 b
03 c 01 a
04 d 02 b
05 e 03 c
set ssmc = (
select mc
from t t2
where
t.dm = t2.ssdm
);
try 一下。
set ssmc=(
select t2.val1
from t5 t2
where t2.dm=t5.ssdm
);
set ssmc=(
select t2.mc
from t5 t2
where t2.dm=t5.ssdm
);
update ta a set
ssmc=(select mc from ta b where a.dm=b.ssdm)
where exists(select 1 from ta b where a.dm=b.ssdm)
要加where条件,否则没有匹配的也被更新了
01 a
02 b
03 c 01
04 d 02
05 e 03 表如上。所属名称(ssmc)这个字段为空 ,现在想通过一条sql语句更新ssmc字段
实现的效果如下:
dm mc ssdm ssmc
01 a
02 b
03 c 01 a
04 d 02 b
05 e 03 c 他表中的ssmc本来就是空的,应该不存在楼上说的那个问题。
SQL>
SQL> select tab1.dm, tab1.dc, tab1.ssdm, tab2.dc
2 from csdn_test tab1, csdn_test tab2
3 where tab1.ssdm = tab2.dm(+)
4 ;DM DC SSDM DC
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
03 c 01 a
04 d 02 b
05 e 03 c
02 b
01 a SQL>