Re: [SQL ] Oracle update多筆資料寫法

看板Database作者 (如夢似幻)時間15年前 (2010/04/22 15:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
試試看 UPDATE TABLExxx A SET A.Col.A = (SELECT (CASE WHEN SUBSTR(Col.A,1,1) = '1' THEN 'A' WHEN SUBSTR(Col.A,1,1) = '2' THEN 'B' WHEN SUBSTR(Col.A,1,1) = '3' THEN 'C' WHEN SUBSTR(Col.A,1,1) = '4' THEN 'D' END) FROM TABLExxx B WHERE B.PrimaryKey = A.PrimaryKey) WHERE A.PrimaryKey IN ('XXXX', 'YYYY', 'ZZZZ'); 或者是寫一段PL/SQL的LOOP來做(當然效率會比較差一點) BEGIN FOR A IN (SELECT (CASE WHEN SUBSTR(Col.A,1,1) = '1' THEN 'A' WHEN SUBSTR(Col.A,1,1) = '2' THEN 'B' WHEN SUBSTR(Col.A,1,1) = '3' THEN 'C' WHEN SUBSTR(Col.A,1,1) = '4' THEN 'D' END) Col.A, A.PrimaryKey FROM TABLExxx A WHERE A.PrimaryKey IN ('XXXX', 'YYYY', 'ZZZZ')) LOOP UPDATE TABLExxx B SET B.Col.A = A.Col.A WHERE B.PrimaryKey = A.PrimaryKey; END LOOP; END; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.3.165.131
文章代碼(AID): #1Bp_Mh2M (Database)
文章代碼(AID): #1Bp_Mh2M (Database)