有一张表tf_bom:
prd_no prd_no_chg
080088041613 NULL
031010600216
031010300093 031010300025
032010300076 032010300038;032010300067
032010600080 032010600118;032010600073;032010600121
031010300093 031010300001
有一张视图min1:
prd_no prd_no_chg prd_no_chg_s
031010300093 031010300025 031010300025
032010300076 032010300038;032010300067 032010300038
032010600080 032010600118;032010600073;032010600121 032010600073
如果tf_bom中的prd_no和prd_no_chg都与min1中的一样,以prd_no=‘ 032010300076’,prd_no_chg=‘032010300038;032010300067’为例,在min1中,prd_no=‘ 032010300076’,prd_no_chg=‘032010300038;032010300067’对应的prd_no_chg_s=‘032010300038’,希望把表tf_bom中的prd_no替换为032010300038,prd_no_chg替换为032010300076;032010300067(去除032010300038,替换为032010300076)
期望得到的tf_bom:
prd_no prd_no_chg
080088041613 NULL
031010600216
031010300025 031010300093
032010300038 032010300076;032010300067
032010600073 032010600118;032010600080;032010600121
031010300093 031010300001
哪位知道,请解答下!
谢谢!
------解决思路----------------------
UPDATE t1
SET t1.prd_no=t2.prd_no_chg_s,t1.prd_no_chg=REPLACE(t1.prd_no_chg,t2.prd_no_chg_s,t2.prd_no)
FROM tf_bom t1
INNER JOIN min1 t2 ON t1.prd_no=t2.prd_no AND t1.prd_no_chg=t2.prd_no_chg
WHERE t1.prd_no='032010300076'
------解决思路----------------------
看起来代码都一样长,就偷懒直接用REPLACE(),不考虑分号分割了。
UPDATE tf_bom
SET b.prd_no = m.prd_no_chg_s,
b.prd_no_chg = REPLACE(m.prd_no_chg,m.prd_no_chg_s,m.prd_no)
FROM tb_bom b, min1 m
WHERE b.prd_no = m.prd_no