DB2用一張表更新其他表的數據

          表結構:
          CREATE TABLE ATEST
          ?(ID??? INTEGER,
          ? NAME? VARCHAR(256),
          ? CODE? INTEGER,
          ? NAME2 VARCHAR(256)
          ?)

          CREATE TABLE BTEST
          ?(ID??? INTEGER,
          ? CODE? INTEGER
          ?)

          CREATE TABLE CTEST
          ?(ID??? INTEGER,
          ? NAME? VARCHAR(256),
          ? NAME2 VARCHAR(256)
          ?)

          SQL語句:
          一張表更新另一張表的字段:
          update atest
          set atest.name=(select ctest.name from ctest where atest.id = ctest.id)
          where atest.id in? (select ctest.id from ctest);

          兩張表關聯更新另一張表的字段:
          update atest
          set (name,name2) = (SELECT CASE WHEN CTEST.NAME IS NULL THEN ATEST.NAME ELSE CTEST.NAME END, CASE WHEN CTEST.NAME2 IS NULL THEN ATEST.NAME2 ELSE CTEST.NAME2 END FROM BTEST LEFT JOIN CTEST on BTEST.ID = CTEST.ID? WHERE atest.CODE = BTEST.CODE)
          WHERE atest.CODE IN (SELECT BTEST.CODE FROM BTEST);


          另外一個: http://blog.csdn.net/Bobwu/archive/2009/01/13/3768636.aspx
          1.
          declare
          cursor t1 is select * from tablename;
          begin
          for rec in t1 loop
          update tablename t set t.detail=rec.jieshao where t.objectid=rec.objid;
          end loop;
          end;

          2.

          update?? student?? set?? (name,id?? )=??
          ? (select?? name?? ,id???? from?? (select?? student.rowid?? rd,student1.name,student1.id?? from?? student1,student?? where?? student1.int_id?? =student.int_id)?? tmp??
          ? where?? student.rowid=tmp.rd);??
          ? commit;

          3.

          update test_a a set (a.name,a.age)=
          (select b.name,b.age from test_b b where a.id = b.id) where exists
          (select * from test_b c where c.id=a.id)

          4.

          UPDATE?? t_A?? SET?? Djrq=????
          ? (??
          ????????? SELECT?? djrq?? FROM?? t_B?? WHERE?? t_A.ID?? =?? T_B.ID????
          ????????? WHERE?? ROWNUM?? =?? 1????
          ? )??
          ? WHERE?? t_A.ID?? IN????
          ? (??
          ????????? SELECT?? ID?? FROM?? t_B?? WHERE?? jwh='XX村'??
          ? )

          5.

          update tbl1 a
          ?? set (a.col1, a.col2) = (select b.col1, b.col2
          ????????????????????????????? from tbl2 b
          ????????????????????????????? where a.key = b.key)
          ?? where a.key in(select key from tbl2)

          posted on 2010-01-12 16:09 飛熊 閱讀(4526) 評論(0)  編輯  收藏 所屬分類: ORACLE

          <2010年1月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清新县| 新龙县| 衡阳市| 宜丰县| 仁寿县| 汝南县| 台湾省| 安吉县| 岳池县| 石河子市| 铜鼓县| 边坝县| 怀柔区| 古田县| 黎川县| 安康市| 阳泉市| 新沂市| 固镇县| 乌拉特中旗| 华容县| 阳江市| 淮滨县| 翁牛特旗| 肃南| 民权县| 宁城县| 浏阳市| 阜新市| 昂仁县| 海伦市| 共和县| 来宾市| 陈巴尔虎旗| 略阳县| 临汾市| 荔浦县| 城固县| 繁峙县| 灵川县| 安岳县|