一个sql连表更新的问题
现在我有表 ke11 和ke12 可以通过aaz278来进行关联,这个字段在两个表中的值是唯一的(没有建立唯一性约束,也不是主键,且两张表都没有主键) 现在有字段 ake001 ke11和ke12都有,但是有些数据对应不上,现在想把 ke12中的ake001 更新到ke11中,在网上找的一些语句测试都没用。 新人求帮助
------最佳解决方案-------------------- merge into ke11 k1
using ke12 k2
on (k1.aaz278 = k2.aaz278)
when matched then
update set k1 = ake001 = k2.ake001;
--aaz278建主键或唯一索引,可以加快更新速度 ------其他解决方案-------------------- merge 就是 带条件的 update 或 insert 操作
大致语法是这样的。。
merge into a -- 目标表,,你要update或insert的那张表
using b
on a.id = b.id -- 符合的条件
when matched then -- 查找到符合条件的数据时更新
update set ...
when not matched then --没有查找到是insert
insert .....values ...
------其他解决方案-------------------- 引用: SQL code
?
123456
merge into ke11 k1 using ke12 k2 on (k1.aaz278 = k2.aaz278) when matched then update set k1 = ake001 = k2.ake001; --aaz278建主键或唯一索引,可以加快更新速度
我这里提示无法在源数据获得稳定行。 (执行4秒之后出现这种问题,是因为我的数据可能有重复的问题吗?)
另外还有个不情之请,能不能再写几个其它的例子 merge 今天还是第一次见。
------其他解决方案-------------------- 你一开始不是说数据唯一么。。。不唯一的话你怎么更新,两条不同数据更新同一条数据?
------其他解决方案-------------------- 用merge
merge into ke11 a
using ke12 b
on a.aaz278 = b.aaz278
when matched then
update set a.ake001 = b.ake001
------其他解决方案-------------------- 艾。。。。。手慢。。。
------其他解决方案-------------------- 引用: 你一开始不是说数据唯一么。。。不唯一的话你怎么更新,两条不同数据更新同一条数据?
我也是几天才刚接触这个,我也不能百分之一百说数据是唯一,理论上应该是唯一的,但是可能的问题就是测试库去从正式库拷数据,或者做假数据的时候不小心出问题了。
我想问的是,为什么会出现我上面出的那个错误?
------其他解决方案-------------------- 引用: 用merge
SQL code
?
12345678
merge into ke11 a using ke12 b on a.aaz278 = b.aaz278 when matched then update set a.ake001 = b.ake001
写几个别的例子,也让我开开眼啊。
------其他解决方案-------------------- 无法获取稳定的数据。。。。那你用存储过程把,,,查找匹配数据然后循环update..