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 飛熊 閱讀(4524) 評論(0)  編輯  收藏 所屬分類: ORACLE

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

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东阳市| 呼伦贝尔市| 页游| 若尔盖县| 湘西| 枝江市| 互助| 建昌县| 金塔县| 方山县| 沭阳县| 大足县| 宜州市| 高雄市| 河北区| 朝阳县| 突泉县| 元氏县| 瑞安市| 财经| 册亨县| 项城市| 繁昌县| 太仆寺旗| 介休市| 南雄市| 寻乌县| 泾源县| 甘孜县| 盐城市| 金沙县| 鸡西市| 万州区| 富裕县| 临沧市| 丰原市| 新民市| 上犹县| 济南市| 泌阳县| 湖北省|