as400 update语句 问题

1、************************************************我新建了两张物理表,tab_1,tab_2,其中它们的数据分别为tab_1------------------------------------bm   mc          value1     value201  &nbs...显示全部
1、************************************************
我新建了两张物理表,tab_1,tab_2,其中它们的数据分别为
tab_1
------------------------------------
bm   mc          value1     value2
01   01编码        0          0
02   02编码        0          0
03   03编码        0          0
------------------------------------
tab_2
------------------------------------
bm   mc          value1
01   01编码        100         
------------------------------------
2、************************************************
然后我使用update语句
update tab_1 a set value1 = (select value1 from tab_2 b where a.bm=b.bm);
3、************************************************
可是最后查询结果却是这样
select * from tab_1;
tab_1
------------------------------------
bm   mc          value1     value2
01   01编码        100         0
02   02编码         -          0
03   03编码         -          0
------------------------------------
为02,03编码的value1值变成空值了。
select * from tab_1 where value1 is null;
tab_1
------------------------------------
bm   mc          value1     value2
02   02编码         -          0
03   03编码         -          0
------------------------------------收起
参与10

查看其它 6 个回答db2_wl的回答

db2_wldb2_wl系统工程师weall
感觉2楼的解释挺不错的,我使用update语句时,只是要修改这一列的值:update tab_1 a set value1 = (select value1 from tab_2 b where a.bm=b.bm); 并且这一列是同tab_2中编码相同的,可是其它不相同的没有加入限制条件。
政府机关 · 2011-03-22
浏览1052

回答者

db2_wl
系统工程师weall
擅长领域: 数据库

回答状态

  • 发布时间:2011-03-22
  • 关注会员:2 人
  • 回答浏览:1052
  • X社区推广